日志屬性文件log4j.properties是專門用于控制日志輸出的。其主要進行三方面控制:
日志屬性文件由兩個對象組成:日志附加器與根日志。
根日志:即為java代碼中的日志記錄器,其主要由兩個屬性構成:日志輸出級別與日志附加器。
日志附加器,則由日志輸出位置定義,由其它很多屬性進行修飾,如輸出布局、文件位置、文件大小等。
配置模式:appenderName是用戶自定義
log4j.appender.appenderName=ClassName
log4j.appender.appenderName.Option1=value1
log4j.appender.appenderName.Option2=value2
…
log4j.appender.appenderName.OptionN=valueN
1 定義日志附加器appender
所謂日志附加器,就是為日志記錄器附加上很多其它設置信息。附加器的本質是一個接口,其定義語法為:log4j.appender.appenderName=輸出位置。
AppenderName為自定義名稱.
輸出位置為log4j指定的類型,是定義好的一些appender接口的實現類。
例如定義了一個名稱為console的控制臺附加器
log4j.appender.console= org.apache.log4j.ConsoleAppender |
常用的附加器實現類如下:
2 修飾日志附加器
所謂修飾日志附加器,就是為定義好的附加器添加一些屬性,以控制到指定位置的輸出。不同的附加器,其修飾屬性不同。
控制臺附加器
Target:控制輸出到控制臺的使用目標。其值為System.out或System.err。它們的區別是:System.out是以黑色字體顯示到控制臺,而System.err是以紅色字體顯示。
文件附加器
File:日志要輸出的文件位置及文件名稱
滾動文件附加器
MaxFileSize:用于指定日志文件的最大值。如果輸出的日志文件大小超過了指定的文件大小,將自動產生另一個日志文件
Log4j常見布局類型:
3 配置根Logger
配置rootLogger,以便于代碼加載來控制日志的輸出。其語法為:
log4j.rootLogger=[level],appenderName1,appenderName2,…
其中,level是日志記錄的優先級別,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL。Log4j只建議使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。OFF為關閉日志功能。
低級別的可以顯示打印出高級別的日志信息,但高級別打印不出低級別的日志信息。所以,級別越高顯示的日志信息就越少。