[英]Java - dynamically change logging level
我希望能夠告訴JVM在執行鏈中的某個點停止記錄某些級別的消息。 在某些時候我想只記錄具有SEVERE
級別的消息,所以我想這樣做:
for(Enumeration<String> loggerNames = logManager.getLoggerNames(); loggerNames.hasMoreElements();){
String name = loggerNames.nextElement();
Logger nextLogger = logManager.getLogger(name);
if(nextLogger != null)
nextLogger.setLevel(Level.SEVERE);
}
有沒有更簡潔的方法來實現相同的邏輯,即設置一個全局變量,停止打印到日志除非嚴重? 我需要區分控制台輸出(在測試中)和實時文件輸出,所以我可能會在處理程序(控制台和文件)上設置這些級別?
回答我自己的問題:
這正是我所需要的:
Handler[] handlers =
Logger.getLogger( "" ).getHandlers();
for ( int index = 0; index < handlers.length; index++ ) {
handlers[index].setLevel( Level.SEVERE);
}
使用log4j,您可以更改根記錄器的級別。
這可能有效:
logManager.getLogger( "" ).setLevel(Level.SEVERE);
或使用Logger.getParent()
查找根記錄器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.