[英]Java util logger: custom formatter only works for some levels
我為 java.util 記錄器制作了一個自定義格式化程序,實現如下
logger = Logger.getAnonymousLogger();
logger.setUseParentHandlers(false);
sb = new StringBuffer();
try {
Handler handler = new FileHandler("xx.log");
handler.setFormatter(new CustomFormatter());
logger.addHandler(handler);
} catch (IOException e) {
e.printStackTrace();
}
private class CustomFormatter extends Formatter {
@Override
public String format(LogRecord record) {
String msg = record.getMessage();
sb.append(msg);
System.out.print(sb.toString());
return sb.toString();
}
}
運行以下代碼:
logger.finest(msg);
logger.finer(msg);
logger.fine(msg);
logger.config(msg);
logger.info(msg);
logger.warning(msg);
logger.severe(msg);
logger.log(new LogRecord(Level.FINE, msg));
只有信息、警告和嚴格的工作。 其他方法運行但不向控制台返回任何內容,也不向日志文件寫入任何內容。 我需要實現至少 4 個日志記錄級別,但只有 3 個工作。
日志、配置、精細、精細、精細發生了什么? 我如何讓他們使用我的格式化程序? 或者我如何將級別傳遞給格式化程序?
您可以設置Level
與記錄的setlevel(水平)
設置日志級別,指定此記錄器將記錄哪些消息級別。 低於此值的消息級別將被丟棄。
在您的情況下,因為您對所有級別都感興趣,它將是:
logger.setLevel(Level.ALL);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.