[英]How to customize the default java logging?
我需要具有自定義日志級別(不是java.util.logging.Level),並且需要Java util logger中的自定義函數來記錄這些級別的消息。
自定義級別:1.調試2.錯誤3.致命
所以我創建了從Level擴展的XYZLevel,如下所示:
public class OKILevel extends Level {
public OKILevel(String name, int value) {
super(name, value);
}
/* OKI Log Levels */
public static final Level FATAL = new OKILevel("FATAL",
Level.SEVERE.intValue() + 100);
public static final Level ERROR = new OKILevel("ERROR",
Level.SEVERE.intValue());
public static final Level DEBUG = new OKILevel("DEBUG",
Level.FINE.intValue());
}
需要自定義函數:.debug()、. severe()等,類似於記錄器中的.info。
對於記錄器,我這樣做:
static final Logger logger = Logger.getLogger(ABC.class.getName());
我無法弄清楚:
static final XYZLogger logger = XYZLogger.getLogger(ABC.class.getName());
擴展記錄器無濟於事。
另外,對於此應用程序,需要傳遞logging.properties。如何在logging.properties的.level中使用這些新級別?
如果要創建日志包裝器,則應在發明新內容之前利用一些標准框架。
如果希望您的應用程序使用新的記錄器實現,則必須實現並安裝自定義LogManager 。
另外,對於此應用程序,需要傳遞logging.properties。如何在logging.properties的.level中使用這些新級別?
所有的.level
解析都是通過Level.parse
方法執行的。 根據文檔:
參數字符串可以由級別名稱或整數值組成。
例如:
“嚴重”
“ 1000”
因此,您應該能夠編寫:
#Level.SEVERE + 100 = FATAL
some.logger.name.level = 1100
也就是說,在某些Java版本中, 通過int查找正確的級別值存在一些已知的問題。
如果您只是希望某個級別的呈現輸出與眾不同,則可以使用另一種方法,那就應該看看重寫java.util.logging Level類以更改級別字符串的最佳方法 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.