Log4j2介紹和特性例項(五)--使用者自定義日誌等級
阿新 • • 發佈:2019-01-22
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">Log4j2支援使用者自定義的日誌等級,在程式碼或者配置檔案中都可以進行新日誌等級的定義。</span>
1. 如果要在程式碼中定義新等級,可以使用 Level.forName() 方法:
// This creates the "VERBOSE" level if it does not exist yet. final Level VERBOSE = Level.forName("VERBOSE", 550); final Logger logger = LogManager.getLogger(); logger.log(VERBOSE, "a verbose message"); // use the custom VERBOSE level // Create and use a new custom level "DIAG". logger.log(Level.forName("DIAG", 350), "a diagnostic message"); // Use (don't create) the "DIAG" custom level. // Only do this *after* the custom level is created! logger.log(Level.getLevel("DIAG"), "another diagnostic message");
2. 如果要在配置檔案中定義新等級,可以使用<CustomLevels>標籤進行定義:
在Log4j2程式在解析配置檔案後,會自動呼叫Level.forName()建立新日誌等級。<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <span style="white-space:pre"> </span><!-- Define custom levels before using them for filtering below. --> <CustomLevels> <CustomLevel name="DIAG" intLevel="350" /> <CustomLevel name="NOTICE" intLevel="450" /> <CustomLevel name="VERBOSE" intLevel="550" /> </CustomLevels> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-7level %logger{36} - %msg%n"/> </Console> <File name="MyFile" fileName="logs/app.log"> <PatternLayout pattern="%d %-7level %logger{36} - %msg%n"/> </File> </Appenders> <Loggers> <Root level="trace"> <!-- Only events at DIAG level or more specific are sent to the console. --> <AppenderRef ref="Console" level="diag" /> <AppenderRef ref="MyFile" level="trace" /> </Root> </Loggers> </Configuration>
3. 在日誌等級中使用的數字(intLevel),是用來讓系統知道新等級相對於系統自帶的日誌等級所在的位置。
系統預設的日誌等級如下:
如果大家想深入研究,可以參考使用者手冊第17章的內容。
下一篇將介紹配置檔案不再預設路徑時,如何載入配置檔案。謝謝關注。