* 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;
|
private final static int MAX_PRIORITY_LENGTH = 5;
|
||||||
|
|
||||||
public static String formatRecord(LogManager manager, LogRecord rec) {
|
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();
|
int size = 128 + rec.getMessage().length();
|
||||||
if (rec.getThrowable() != null)
|
if (rec.getThrowable() != null)
|
||||||
size += 512;
|
size += 512;
|
||||||
@ -37,7 +45,10 @@ class LogRecordFormatter {
|
|||||||
for (int i = 0; i < format.length; ++i) {
|
for (int i = 0; i < format.length; ++i) {
|
||||||
switch (format[i]) {
|
switch (format[i]) {
|
||||||
case LogManager.DATE:
|
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;
|
break;
|
||||||
case LogManager.CLASS:
|
case LogManager.CLASS:
|
||||||
buf.append(getWhere(rec));
|
buf.append(getWhere(rec));
|
||||||
|
@ -17,8 +17,6 @@ import java.io.OutputStreamWriter;
|
|||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log writer thread that pulls log records from the LogManager, writes them to
|
* 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
|
* 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) {
|
private void writeRecord(LogRecord rec) {
|
||||||
String val = LogRecordFormatter.formatRecord(_manager, rec);
|
String val = LogRecordFormatter.formatRecord(_manager, rec, true);
|
||||||
writeRecord(val);
|
writeRecord(val);
|
||||||
|
|
||||||
// we always add to the console buffer, but only sometimes write to stdout
|
// 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);
|
_manager.getBuffer().addCritical(val);
|
||||||
if (_manager.getDisplayOnScreenLevel() <= rec.getPriority()) {
|
if (_manager.getDisplayOnScreenLevel() <= rec.getPriority()) {
|
||||||
if (_manager.displayOnScreen()) {
|
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 f = new File(pattern);
|
||||||
File base = null;
|
File base = null;
|
||||||
if (!f.isAbsolute())
|
if (!f.isAbsolute())
|
||||||
base = I2PAppContext.getGlobalContext().getLogDir();
|
base = _manager.getContext().getLogDir();
|
||||||
|
|
||||||
if ( (pattern.indexOf('#') < 0) && (pattern.indexOf('@') <= 0) ) {
|
if ( (pattern.indexOf('#') < 0) && (pattern.indexOf('@') <= 0) ) {
|
||||||
if (base != null)
|
if (base != null)
|
||||||
|
Reference in New Issue
Block a user