|
|
@@ -130,14 +130,15 @@ public class XmlLogger implements BuildListener { |
|
|
|
if (outFilename == null) { |
|
|
|
outFilename = "log.xml"; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// specify output in UTF8 otherwise accented characters will blow |
|
|
|
// up everything |
|
|
|
Writer out = |
|
|
|
new OutputStreamWriter(new FileOutputStream(outFilename), |
|
|
|
"UTF8"); |
|
|
|
out.write("<?xml version=\"1.0\"?>\n"); |
|
|
|
out.write("<?xml:stylesheet type=\"text/xsl\" href=\"log.xsl\"?>\n\n"); |
|
|
|
(new DOMElementWriter()).write(buildElement.element, out, 0, "\t"); |
|
|
|
(new DOMElementWriter()).write(buildElement.element, out, 0, "\t"); |
|
|
|
out.flush(); |
|
|
|
out.close(); |
|
|
|
|
|
|
@@ -155,7 +156,7 @@ public class XmlLogger implements BuildListener { |
|
|
|
} |
|
|
|
return threadStack; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void targetStarted(BuildEvent event) { |
|
|
|
Target target = event.getTarget(); |
|
|
|
TimedElement targetElement = new TimedElement(); |
|
|
@@ -173,14 +174,14 @@ public class XmlLogger implements BuildListener { |
|
|
|
long totalTime = System.currentTimeMillis() - targetElement.startTime; |
|
|
|
targetElement.element.setAttribute(TIME_ATTR, DefaultLogger.formatTime(totalTime)); |
|
|
|
|
|
|
|
TimedElement parentElement = null; |
|
|
|
TimedElement parentElement = null; |
|
|
|
Stack threadStack = getStack(); |
|
|
|
if (!threadStack.empty()) { |
|
|
|
TimedElement poppedStack = (TimedElement)threadStack.pop(); |
|
|
|
if (poppedStack != targetElement) { |
|
|
|
throw new RuntimeException("Mismatch - popped element = " + poppedStack.element + |
|
|
|
" finished task element = " + targetElement.element); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!threadStack.empty()) { |
|
|
|
parentElement = (TimedElement)threadStack.peek(); |
|
|
|
} |
|
|
@@ -188,7 +189,7 @@ public class XmlLogger implements BuildListener { |
|
|
|
if (parentElement == null) { |
|
|
|
buildElement.element.appendChild(targetElement.element); |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
parentElement.element.appendChild(targetElement.element); |
|
|
|
} |
|
|
|
} |
|
|
@@ -231,7 +232,7 @@ public class XmlLogger implements BuildListener { |
|
|
|
if (poppedStack != taskElement) { |
|
|
|
throw new RuntimeException("Mismatch - popped element = " + poppedStack.element + |
|
|
|
" finished task element = " + taskElement.element); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@@ -239,7 +240,7 @@ public class XmlLogger implements BuildListener { |
|
|
|
public void messageLogged(BuildEvent event) { |
|
|
|
Element messageElement = doc.createElement(MESSAGE_TAG); |
|
|
|
|
|
|
|
String name = "debug"; |
|
|
|
String name; |
|
|
|
switch(event.getPriority()) { |
|
|
|
case Project.MSG_ERR: name = "error"; break; |
|
|
|
case Project.MSG_WARN: name = "warn"; break; |
|
|
@@ -252,7 +253,7 @@ public class XmlLogger implements BuildListener { |
|
|
|
messageElement.appendChild(messageText); |
|
|
|
|
|
|
|
TimedElement parentElement = null; |
|
|
|
|
|
|
|
|
|
|
|
Task task = event.getTask(); |
|
|
|
Target target = event.getTarget(); |
|
|
|
if (task != null) { |
|
|
@@ -261,7 +262,7 @@ public class XmlLogger implements BuildListener { |
|
|
|
if (parentElement == null && target != null) { |
|
|
|
parentElement = (TimedElement)targets.get(target); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (parentElement == null) { |
|
|
|
Stack threadStack = (Stack)threadStacks.get(Thread.currentThread()); |
|
|
|
if (threadStack != null) { |
|
|
@@ -270,7 +271,7 @@ public class XmlLogger implements BuildListener { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (parentElement != null) { |
|
|
|
parentElement.element.appendChild(messageElement); |
|
|
|
} |
|
|
|