This commit is contained in:
@@ -46,19 +46,19 @@ public class LogFileHandler extends Handler {
|
|||||||
private static final String format = "%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS.%tL %4$s %2$s\r\n%5$s%6$s\r\n";
|
private static final String format = "%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS.%tL %4$s %2$s\r\n%5$s%6$s\r\n";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String format(LogRecord record) {
|
public String format(LogRecord log) {
|
||||||
String source;
|
String source;
|
||||||
if (record.getSourceClassName() != null) {
|
if (log.getSourceClassName() != null) {
|
||||||
source = record.getSourceClassName();
|
source = log.getSourceClassName();
|
||||||
if (record.getSourceMethodName() != null) {
|
if (log.getSourceMethodName() != null) {
|
||||||
source += " " + record.getSourceMethodName();
|
source += " " + log.getSourceMethodName();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
source = record.getLoggerName();
|
source = log.getLoggerName();
|
||||||
}
|
}
|
||||||
String message = formatMessage(record);
|
String message = formatMessage(log);
|
||||||
String throwable = "";
|
String throwable = "";
|
||||||
if (record.getThrown() != null) {
|
if (log.getThrown() != null) {
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
PrintWriter pw = new PrintWriter(sw) {
|
PrintWriter pw = new PrintWriter(sw) {
|
||||||
@Override
|
@Override
|
||||||
@@ -67,22 +67,22 @@ public class LogFileHandler extends Handler {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
pw.println();
|
pw.println();
|
||||||
record.getThrown().printStackTrace(pw);
|
log.getThrown().printStackTrace(pw);
|
||||||
pw.close();
|
pw.close();
|
||||||
throwable = sw.toString();
|
throwable = sw.toString();
|
||||||
}
|
}
|
||||||
return String.format(format,
|
return String.format(format,
|
||||||
System.currentTimeMillis(),
|
System.currentTimeMillis(),
|
||||||
source,
|
source,
|
||||||
record.getLoggerName(),
|
log.getLoggerName(),
|
||||||
record.getLevel().getName(),
|
log.getLevel().getName(),
|
||||||
message,
|
message,
|
||||||
throwable);
|
throwable);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final LinkedBlockingQueue<LogRecord> records = new LinkedBlockingQueue();
|
protected final LinkedBlockingQueue<LogRecord> logqueue = new LinkedBlockingQueue();
|
||||||
|
|
||||||
private String pattern;
|
private String pattern;
|
||||||
|
|
||||||
@@ -144,9 +144,9 @@ public class LogFileHandler extends Handler {
|
|||||||
public void run() {
|
public void run() {
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
LogRecord record = records.take();
|
LogRecord log = logqueue.take();
|
||||||
final boolean bigger = (limit > 0 && limit <= loglength.get());
|
final boolean bigger = (limit > 0 && limit <= loglength.get());
|
||||||
final boolean changeday = tomorrow <= record.getMillis();
|
final boolean changeday = tomorrow <= log.getMillis();
|
||||||
if (bigger || changeday) {
|
if (bigger || changeday) {
|
||||||
updateTomorrow();
|
updateTomorrow();
|
||||||
if (logstream != null) {
|
if (logstream != null) {
|
||||||
@@ -193,12 +193,12 @@ public class LogFileHandler extends Handler {
|
|||||||
logunusualstream = new FileOutputStream(logunusualfile, append);
|
logunusualstream = new FileOutputStream(logunusualfile, append);
|
||||||
}
|
}
|
||||||
//----------------------写日志-------------------------
|
//----------------------写日志-------------------------
|
||||||
String message = getFormatter().format(record);
|
String message = getFormatter().format(log);
|
||||||
String encoding = getEncoding();
|
String encoding = getEncoding();
|
||||||
byte[] bytes = encoding == null ? message.getBytes() : message.getBytes(encoding);
|
byte[] bytes = encoding == null ? message.getBytes() : message.getBytes(encoding);
|
||||||
logstream.write(bytes);
|
logstream.write(bytes);
|
||||||
loglength.addAndGet(bytes.length);
|
loglength.addAndGet(bytes.length);
|
||||||
if (unusual != null && (record.getLevel() == Level.WARNING || record.getLevel() == Level.SEVERE)) {
|
if (unusual != null && (log.getLevel() == Level.WARNING || log.getLevel() == Level.SEVERE)) {
|
||||||
logunusualstream.write(bytes);
|
logunusualstream.write(bytes);
|
||||||
logunusuallength.addAndGet(bytes.length);
|
logunusuallength.addAndGet(bytes.length);
|
||||||
}
|
}
|
||||||
@@ -310,21 +310,21 @@ public class LogFileHandler extends Handler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void publish(LogRecord record) {
|
public void publish(LogRecord log) {
|
||||||
final String sourceClassName = record.getSourceClassName();
|
final String sourceClassName = log.getSourceClassName();
|
||||||
if (sourceClassName == null || true) {
|
if (sourceClassName == null || true) {
|
||||||
StackTraceElement[] ses = new Throwable().getStackTrace();
|
StackTraceElement[] ses = new Throwable().getStackTrace();
|
||||||
for (int i = 2; i < ses.length; i++) {
|
for (int i = 2; i < ses.length; i++) {
|
||||||
if (ses[i].getClassName().startsWith("java.util.logging")) continue;
|
if (ses[i].getClassName().startsWith("java.util.logging")) continue;
|
||||||
record.setSourceClassName('[' + Thread.currentThread().getName() + "] " + ses[i].getClassName());
|
log.setSourceClassName('[' + Thread.currentThread().getName() + "] " + ses[i].getClassName());
|
||||||
record.setSourceMethodName(ses[i].getMethodName());
|
log.setSourceMethodName(ses[i].getMethodName());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
record.setSourceClassName('[' + Thread.currentThread().getName() + "] " + sourceClassName);
|
log.setSourceClassName('[' + Thread.currentThread().getName() + "] " + sourceClassName);
|
||||||
}
|
}
|
||||||
if (denyreg != null && denyreg.matcher(record.getMessage()).find()) return;
|
if (denyreg != null && denyreg.matcher(log.getMessage()).find()) return;
|
||||||
records.offer(record);
|
logqueue.offer(log);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user