From 84521fd4a08059ef530bc047fcc4678ab6c888db Mon Sep 17 00:00:00 2001 From: lbourges Date: Thu, 10 Dec 2015 15:58:01 -0800 Subject: [PATCH] 8144654: Improve Marlin logging Reviewed-by: prr, flar --- .../sun/java2d/marlin/ByteArrayCache.java | 4 ++-- .../sun/java2d/marlin/FloatArrayCache.java | 4 ++-- .../sun/java2d/marlin/IntArrayCache.java | 4 ++-- .../sun/java2d/marlin/MarlinConst.java | 9 ++++---- .../sun/java2d/marlin/MarlinProperties.java | 4 ++++ .../sun/java2d/marlin/MarlinUtils.java | 22 ++++--------------- .../sun/java2d/marlin/RendererContext.java | 22 +++++++------------ 7 files changed, 27 insertions(+), 42 deletions(-) diff --git a/src/share/classes/sun/java2d/marlin/ByteArrayCache.java b/src/share/classes/sun/java2d/marlin/ByteArrayCache.java index cd6ebee89..226a3d2e3 100644 --- a/src/share/classes/sun/java2d/marlin/ByteArrayCache.java +++ b/src/share/classes/sun/java2d/marlin/ByteArrayCache.java @@ -74,7 +74,7 @@ final class ByteArrayCache implements MarlinConst { void putDirtyArray(final byte[] array, final int length) { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } @@ -98,7 +98,7 @@ final class ByteArrayCache implements MarlinConst { { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } diff --git a/src/share/classes/sun/java2d/marlin/FloatArrayCache.java b/src/share/classes/sun/java2d/marlin/FloatArrayCache.java index a068ad80f..06d7f351e 100644 --- a/src/share/classes/sun/java2d/marlin/FloatArrayCache.java +++ b/src/share/classes/sun/java2d/marlin/FloatArrayCache.java @@ -75,7 +75,7 @@ final class FloatArrayCache implements MarlinConst { void putDirtyArray(final float[] array, final int length) { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } @@ -99,7 +99,7 @@ final class FloatArrayCache implements MarlinConst { { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } diff --git a/src/share/classes/sun/java2d/marlin/IntArrayCache.java b/src/share/classes/sun/java2d/marlin/IntArrayCache.java index ccd239cb5..11c5aae84 100644 --- a/src/share/classes/sun/java2d/marlin/IntArrayCache.java +++ b/src/share/classes/sun/java2d/marlin/IntArrayCache.java @@ -74,7 +74,7 @@ final class IntArrayCache implements MarlinConst { void putDirtyArray(final int[] array, final int length) { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } @@ -98,7 +98,7 @@ final class IntArrayCache implements MarlinConst { { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } diff --git a/src/share/classes/sun/java2d/marlin/MarlinConst.java b/src/share/classes/sun/java2d/marlin/MarlinConst.java index e79950431..72993ebfd 100644 --- a/src/share/classes/sun/java2d/marlin/MarlinConst.java +++ b/src/share/classes/sun/java2d/marlin/MarlinConst.java @@ -30,8 +30,8 @@ package sun.java2d.marlin; */ interface MarlinConst { // enable Logs (logger or stdout) - static final boolean enableLogs = false; - // enable Logger + static final boolean enableLogs = MarlinProperties.isLoggingEnabled(); + // use Logger instead of stdout static final boolean useLogger = enableLogs && MarlinProperties.isUseLogger(); // log new RendererContext @@ -47,9 +47,10 @@ interface MarlinConst { static final boolean doStats = enableLogs && MarlinProperties.isDoStats(); // do monitors // disabled to reduce byte-code size a bit... - static final boolean doMonitors = enableLogs && false; // MarlinProperties.isDoMonitors(); + static final boolean doMonitors = false; +// static final boolean doMonitors = enableLogs && MarlinProperties.isDoMonitors(); // do checks - static final boolean doChecks = false; // MarlinProperties.isDoChecks(); + static final boolean doChecks = enableLogs && MarlinProperties.isDoChecks(); // do AA range checks: disable when algorithm / code is stable static final boolean DO_AA_RANGE_CHECK = false; diff --git a/src/share/classes/sun/java2d/marlin/MarlinProperties.java b/src/share/classes/sun/java2d/marlin/MarlinProperties.java index 002f16d9d..bbee15a13 100644 --- a/src/share/classes/sun/java2d/marlin/MarlinProperties.java +++ b/src/share/classes/sun/java2d/marlin/MarlinProperties.java @@ -136,6 +136,10 @@ public final class MarlinProperties { // logging parameters + public static boolean isLoggingEnabled() { + return getBoolean("sun.java2d.renderer.log", "false"); + } + public static boolean isUseLogger() { return getBoolean("sun.java2d.renderer.useLogger", "false"); } diff --git a/src/share/classes/sun/java2d/marlin/MarlinUtils.java b/src/share/classes/sun/java2d/marlin/MarlinUtils.java index d218d06f5..aeeacca57 100644 --- a/src/share/classes/sun/java2d/marlin/MarlinUtils.java +++ b/src/share/classes/sun/java2d/marlin/MarlinUtils.java @@ -27,12 +27,12 @@ package sun.java2d.marlin; public final class MarlinUtils { - // TODO: use sun.util.logging.PlatformLogger once in JDK9 - private static final java.util.logging.Logger log; + // Marlin logger + private static final sun.util.logging.PlatformLogger log; static { if (MarlinConst.useLogger) { - log = java.util.logging.Logger.getLogger("sun.java2d.marlin"); + log = sun.util.logging.PlatformLogger.getLogger("sun.java2d.marlin"); } else { log = null; } @@ -53,25 +53,11 @@ public final class MarlinUtils { public static void logException(final String msg, final Throwable th) { if (MarlinConst.useLogger) { -// log.warning(msg, th); - log.log(java.util.logging.Level.WARNING, msg, th); + log.warning(msg, th); } else if (MarlinConst.enableLogs) { System.out.print("WARNING: "); System.out.println(msg); th.printStackTrace(System.err); } } - - // Returns the caller's class and method's name; best effort - // if cannot infer, return the logger's name. - static String getCallerInfo(String className) { - String sourceClassName = null; - String sourceMethodName = null; - - if (sourceClassName != null) { - return sourceClassName + " " + sourceMethodName; - } else { - return "unknown"; - } - } } diff --git a/src/share/classes/sun/java2d/marlin/RendererContext.java b/src/share/classes/sun/java2d/marlin/RendererContext.java index 7af675b16..a767651f5 100644 --- a/src/share/classes/sun/java2d/marlin/RendererContext.java +++ b/src/share/classes/sun/java2d/marlin/RendererContext.java @@ -31,7 +31,6 @@ import java.lang.ref.WeakReference; import java.util.concurrent.atomic.AtomicInteger; import static sun.java2d.marlin.ArrayCache.*; import sun.java2d.marlin.MarlinRenderingEngine.NormalizingPathIterator; -import static sun.java2d.marlin.MarlinUtils.getCallerInfo; import static sun.java2d.marlin.MarlinUtils.logInfo; /** @@ -39,7 +38,6 @@ import static sun.java2d.marlin.MarlinUtils.logInfo; */ final class RendererContext implements MarlinConst { - private static final String className = RendererContext.class.getName(); // RendererContext creation counter private static final AtomicInteger contextCount = new AtomicInteger(1); // RendererContext statistics @@ -214,8 +212,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getDirtyByteArray[oversize]: length=\t" + length - + "\tfrom=\t" + getCallerInfo(className)); + logInfo("getDirtyByteArray[oversize]: length=\t" + length); } return new byte[length]; @@ -254,7 +251,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenDirtyByteArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; } @@ -275,8 +272,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getIntArray[oversize]: length=\t" + length + "\tfrom=\t" - + getCallerInfo(className)); + logInfo("getIntArray[oversize]: length=\t" + length); } return new int[length]; @@ -306,7 +302,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenIntArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; } @@ -338,8 +334,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getDirtyIntArray[oversize]: length=\t" + length - + "\tfrom=\t" + getCallerInfo(className)); + logInfo("getDirtyIntArray[oversize]: length=\t" + length); } return new int[length]; @@ -369,7 +364,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenDirtyIntArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; } @@ -399,8 +394,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getDirtyFloatArray[oversize]: length=\t" + length - + "\tfrom=\t" + getCallerInfo(className)); + logInfo("getDirtyFloatArray[oversize]: length=\t" + length); } return new float[length]; @@ -430,7 +424,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenDirtyFloatArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; } -- GitLab