Пользовательский форматер не работает, если указано в logging.properties
У меня есть пользовательский Formatter, который я хотел использовать в своем приложении для преобразования журнала перед его регистрацией.
Мой форматер выглядит как...
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, но я все еще не могу настроить свои настраиваемые сообщения журнала. Что не так с моим кодом здесь?
1 ответ
Установите уровень регистрации FileHandler на ВСЕ.
java.util.logging.FileHandler.formatter=com.mycomp.logger.BnaLogFormatter
java.util.logging.FileHandler.level=ALL
java.util.logging.FileHandler.pattern=logs/ena.log