* Log: Don't double-timestamp CRITS in wrapper.log
This commit is contained in:
@ -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));
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user