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);