libbluray | branch: master | hpi1 <[email protected]> | Wed Mar 13 10:48:39 2013 +0200| [185ff964b03a4d6cff95046e7b844db9a0ebc24b] | committer: hpi1
Capture on-disc BD-J applets debug output > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=185ff964b03a4d6cff95046e7b844db9a0ebc24b --- src/libbluray/bdj/java/org/videolan/Logger.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/libbluray/bdj/java/org/videolan/Logger.java b/src/libbluray/bdj/java/org/videolan/Logger.java index 12b8437..e5988b7 100644 --- a/src/libbluray/bdj/java/org/videolan/Logger.java +++ b/src/libbluray/bdj/java/org/videolan/Logger.java @@ -19,6 +19,8 @@ package org.videolan; +import java.io.PrintStream; + public class Logger { static { String prop; @@ -26,6 +28,11 @@ public class Logger { use_throw = false; use_trace = false; + // capture stdout and stderr from on-disc applets + // (those produce useful debug information sometimes) + System.setOut(createCapture(System.out, false)); + System.setErr(createCapture(System.err, true)); + prop = System.getProperty("debug.unimplemented.throw"); if (prop != null && prop.equalsIgnoreCase("YES")) { use_throw = true; @@ -63,6 +70,17 @@ public class Logger { return new Location(); } + private static PrintStream createCapture(final PrintStream printStream, final boolean error) { + return new PrintStream(printStream) { + public void print(final String string) { + Logger.log(error, string); + } + public void println(final String string) { + Logger.log(error, string); + } + }; + } + public static Logger getLogger(String name) { return new Logger(name); } @@ -76,7 +94,6 @@ public class Logger { private static void log(boolean error, String cls, String msg) { logN(error, cls, 0, msg); } - private static void log(boolean error, String msg) { Location l = getLocation(3); logN(error, l.file + ":" + l.cls + "." + l.func, l.line, msg); _______________________________________________ libbluray-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libbluray-devel
