0
我有自定義的格式化程序,而且我想在我的應用程序中使用它來在實際記錄之前對日誌進行fromat處理。如果在logging.properties中指定,自定義格式化程序不起作用
我格式化的樣子......
package com.mycomp.logger;
import java.text.MessageFormat;
import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
public class BnaLogFormatter extends Formatter {
private static final DateFormat format
= new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a");
private static final String lineSep = System.getProperty("line.separator");
public BnaLogFormatter() {
super();
}
@Override
public String format(LogRecord record) {
System.out.println("#### Inside custom formatter ####");
String transactionId = WsUtils.getTransactionIdFromSoapHeader();
String threadName = "[Thread=" + Thread.currentThread().getName()
+ "] [transactionId=" + transactionId + "] ";
String message = record.getMessage();
StringBuilder output = new StringBuilder()
.append(format.format(new Date(record.getMillis())))
.append(" ").append(record.getSourceClassName());
output.append(threadName);
output.append(record.getLevel()).append(": ");
output.append(record.getMessage());
if (record.getParameters() != null) {
output.append(StringUtils.toString(record.getParameters()));
}
output.append(' ').append(lineSep);
return output.toString();
}
}
在我logging.properties,我有一個這樣的條目:
java.util.logging.FileHandler.formatter=com.mycomp.logger.BnaLogFormatter
java.util.logging.FileHandler.level=OFF
java.util.logging.FileHandler.pattern=logs/ena.log
然後我重新啓動我的Tomcat服務器,但我仍然很無力到我的自定義日誌消息。我的代碼在這裏有什麼問題?