diff --git a/core/java/src/net/i2p/util/LogRecordFormatter.java b/core/java/src/net/i2p/util/LogRecordFormatter.java index 84a1cb6b8..52583b63c 100644 --- a/core/java/src/net/i2p/util/LogRecordFormatter.java +++ b/core/java/src/net/i2p/util/LogRecordFormatter.java @@ -29,6 +29,14 @@ class LogRecordFormatter { private final static int MAX_PRIORITY_LENGTH = 5; public static String formatRecord(LogManager manager, LogRecord rec) { + return formatRecord(manager, rec, true); + } + + /** + * @param showDate if false, skip any date in the format (use when writing to wrapper log) + * @since 0.8.2 + */ + static String formatRecord(LogManager manager, LogRecord rec, boolean showDate) { int size = 128 + rec.getMessage().length(); if (rec.getThrowable() != null) size += 512; @@ -37,7 +45,10 @@ class LogRecordFormatter { for (int i = 0; i < format.length; ++i) { switch (format[i]) { case LogManager.DATE: - buf.append(getWhen(manager, rec)); + if (showDate) + buf.append(getWhen(manager, rec)); + else if (i+1 < format.length && format[i+1] == ' ') + i++; // skip following space break; case LogManager.CLASS: buf.append(getWhere(rec)); diff --git a/core/java/src/net/i2p/util/LogWriter.java b/core/java/src/net/i2p/util/LogWriter.java index f68249ba7..51108e18b 100644 --- a/core/java/src/net/i2p/util/LogWriter.java +++ b/core/java/src/net/i2p/util/LogWriter.java @@ -17,8 +17,6 @@ import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Queue; -import net.i2p.I2PAppContext; - /** * Log writer thread that pulls log records from the LogManager, writes them to * the current logfile, and rotates the logs as necessary. This also periodically @@ -112,7 +110,7 @@ class LogWriter implements Runnable { } private void writeRecord(LogRecord rec) { - String val = LogRecordFormatter.formatRecord(_manager, rec); + String val = LogRecordFormatter.formatRecord(_manager, rec, true); writeRecord(val); // we always add to the console buffer, but only sometimes write to stdout @@ -121,7 +119,11 @@ class LogWriter implements Runnable { _manager.getBuffer().addCritical(val); if (_manager.getDisplayOnScreenLevel() <= rec.getPriority()) { if (_manager.displayOnScreen()) { - System.out.print(val); + // wrapper log already does time stamps, so reformat without the date + if (System.getProperty("wrapper.version") != null) + System.out.print(LogRecordFormatter.formatRecord(_manager, rec, false)); + else + System.out.print(val); } } } @@ -199,7 +201,7 @@ class LogWriter implements Runnable { File f = new File(pattern); File base = null; if (!f.isAbsolute()) - base = I2PAppContext.getGlobalContext().getLogDir(); + base = _manager.getContext().getLogDir(); if ( (pattern.indexOf('#') < 0) && (pattern.indexOf('@') <= 0) ) { if (base != null)