src/share/classes/sun/util/logging/PlatformLogger.java

Print this page

        

*** 32,41 **** --- 32,42 ---- import java.io.PrintStream; import java.io.PrintWriter; import java.io.StringWriter; import java.security.AccessController; import java.security.PrivilegedAction; + import java.text.DateFormat; import java.text.MessageFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import sun.misc.JavaLangAccess;
*** 314,329 **** * Default platform logging support - output messages to * System.err - equivalent to ConsoleHandler with SimpleFormatter. */ static class LoggerProxy { private static final PrintStream defaultStream = System.err; - private static final String lineSeparator = AccessController.doPrivileged( - new PrivilegedAction<String>() { - public String run() { - return System.getProperty("line.separator"); - } - }); final String name; volatile int levelValue; volatile int effectiveLevel = 0; // current effective level value --- 315,324 ----
*** 376,391 **** return false; } return true; } - private static final String format = "{0,date} {0,time}"; - - private Object args[] = new Object[1]; - private MessageFormat formatter; - private Date dat; - // Copied from java.util.logging.Formatter.formatMessage private String formatMessage(String format, Object... parameters) { // Do the formatting. try { if (parameters == null || parameters.length == 0) { --- 371,380 ----
*** 406,433 **** // Formatting failed: use format string. return format; } } ! private synchronized String format(int level, String msg, Throwable thrown) { ! StringBuffer sb = new StringBuffer(); ! // Minimize memory allocations here. if (dat == null) { dat = new Date(); ! formatter = new MessageFormat(format); } dat.setTime(System.currentTimeMillis()); ! args[0] = dat; ! StringBuffer text = new StringBuffer(); ! formatter.format(args, text, null); ! sb.append(text); sb.append(" "); sb.append(getCallerInfo()); ! sb.append(lineSeparator); sb.append(PlatformLogger.getLevelName(level)); sb.append(": "); sb.append(msg); if (thrown != null) { try { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); thrown.printStackTrace(pw); --- 395,450 ---- // Formatting failed: use format string. return format; } } ! static class FormatHelper { ! final static String lineSeparator = AccessController.doPrivileged( ! new PrivilegedAction<String>() { ! public String run() { ! return System.getProperty("line.separator"); ! } ! }); ! ! // this system property may be set programmatically ! final static boolean oneLineFormat = AccessController.doPrivileged( ! new PrivilegedAction<Boolean>() { ! public Boolean run() { ! return Boolean.getBoolean("sun.util.logging.oneLineFormat"); ! } ! }); ! } ! ! private Date dat; ! private DateFormat formatter; ! private synchronized String getCurrentTime() { if (dat == null) { dat = new Date(); ! formatter = DateFormat.getDateTimeInstance(); } + dat.setTime(System.currentTimeMillis()); ! return formatter.format(dat); ! } ! ! private String format(int level, String msg, Throwable thrown) { ! StringBuilder sb = new StringBuilder(); ! if (FormatHelper.oneLineFormat) { ! sb.append(PlatformLogger.getLevelName(level)); ! sb.append(": "); ! sb.append(getCallerInfo()); sb.append(" "); + } else { + sb.append(getCurrentTime()); + sb.append(" "); sb.append(getCallerInfo()); ! sb.append(FormatHelper.lineSeparator); sb.append(PlatformLogger.getLevelName(level)); sb.append(": "); + } sb.append(msg); + if (thrown != null) { try { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); thrown.printStackTrace(pw);