我有自定义格式化程序,我希望在我的应用程序中使用它来实际记录日志之前的日志。
我的格式化程序看起来像......
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服务器,但仍然无法访问我的自定义日志消息。我的代码在这里出了什么问题?
答案 0 :(得分:0)
将FileHandler的日志记录级别设置为ALL。
java.util.logging.FileHandler.formatter=com.mycomp.logger.BnaLogFormatter
java.util.logging.FileHandler.level=ALL
java.util.logging.FileHandler.pattern=logs/ena.log