1. 程式人生 > >日誌輸出Log4j配置和使用

日誌輸出Log4j配置和使用

     在開發過程中,日誌資訊是必不可少的,一般我們會選擇在控制檯檢視程式輸出的日誌資訊,而常用到的日誌工具是Log4j,下面就其在開發中的配置來了解下。

    一、瞭解日誌輸出工具Log4j

    Log4j是幫助開發人員進行日誌輸出管理的API類庫,它最重要的特點就可以配置檔案靈活的設定日誌資訊的優先順序、日誌資訊的輸出目的地以及日誌資訊的輸出格式。Log4j除了可以記錄程式執行日誌資訊外還有一重要的功能就是用來顯示除錯資訊,如System.out.println語句輸出除錯資訊。

    二、Log4j開發準備

    在開發使用Log4j前,需要準備一些必須的東西,如jar包和配置檔案。Log4j的jar包可從官網上下載,通過新增外部jar包的形式匯入程式,一些常用jar開發包連結:

    https://pan.baidu.com/s/1GeT12vJmbb-n-UEsPM6qGw    密碼:qaxr;

    配置檔案一般命名為log4j.properties,簡潔明瞭。

    三、配置檔案log4j.properties

    下面通過一個簡單的配置例項來講解下:

log4j.rootLogger=INFO,CONSOLE

#log4j.addivity.org.apache=false



log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.Threshold=INFO

log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} -%-4r [%t] %-5p  %x - %m%n

log4j.appender.CONSOLE.Target=System.out

log4j.appender.CONSOLE.Encoding=gbk

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

    第一行配置根Logger,其語法為:

log4j.rootLogger = [ level ] , appenderName, appenderName, …

    其中,level 是日誌記錄的優先順序,定義某個級別則低於該級別的日誌資訊將不予顯示,一般常用到的優先順序從高到低分別為ERROR、WARN、INFO、DEBUG;appenderName 指日誌資訊輸出目的地,可以指定多個。

    第二行是否使用 rootLogger的配置,其格式為:

log4j.addivity.org.apache=true/false

    其中,true/false 是子Logger是否繼承父Logger的輸出源(appender)的標誌位,可自行選擇是否啟用。

    後面的配置都是基於第一行中輸出位置來確定的,如輸出位置為Console,則其相關配置的格式均為:

log4j.appender.CONSOLE=

log4j.appender.CONSOLE.xx=

    如上面的例項所示,後面的就是CONSOLE相關的配置,分別表示:

  • CONSOLE的類

  • Threshold=INFO,指定日誌訊息的輸出最低層次

  • 輸出內容格式

  • Target=System.out,指定輸出控制檯

  • Encoding=gbk,指定輸出字元格式

  • layout=,指定佈局

    這是針對輸出位置為控制檯CONSOLE的一些配置,若含多個輸出位置,則後面分別列出相應的配置資訊,其格式基本一致,也可以自定義輸出位置,如A,B,C,D等,後面再對該輸出位置進行相關配置即可。

    當然,日誌輸出主要還是為了方便開發,這裡不做深究了,有興趣的可以自行檢視。

    四、程式碼中的使用

    一般在類中定義其物件,語法格式為:

private static Logger logger = Logger.getLogger(XX.class);

    其中,XX表示該類名。

    接著就可以在程式碼中使用該物件,其語法為:

logger.debug(Object message)

logger.info(Object message)

logger.warn(Object message)

logger.error(Object message)

    根據優先順序使用不同的輸出。

    以上只是對日誌輸出Log4j的一些基本配置和使用,作為開發人員,這些基本的東西還是需要了解一下的。雖然要掌握的知識點很多,但不是每個都需要深入學習的,畢竟精力有限。


作者:海岸線的曙光
連結:https://www.imooc.com/article/49245
來源:慕課網