摘要:說明被用于日志輸出。配置文件使用之前需要在下新建一個配置文件。系統選擇配置文件的優先級從先到后如下下的名為或者的文件下的名為的文件下名為或者的文件下名為的文件我們一般默認使用進行命名。
說明
log4j2被用于日志輸出。因為剛接觸log4j2,因此記個博客備用。
log4j2是一個日志框架,slf4j是日志框架接口,之所以使用log4j2和slf4j搭配使用是為了以后如果項目對日志有其它要求而需要更換日志框架時可以不改動代碼,只需要把依賴的jar包換掉就可以了。
// log4j2依賴 log4j-api-2.8.2.jar log4j-core-2.8.2.jar // log4j2和slf4j橋接依賴 log4j-slf4j-impl-2.8.2.jar // slf4j依賴 slf4j-api-1.7.25.jar
注意,log4j依賴和橋接依賴的jar包版本最好保持一致。
配置文件使用log4j2之前需要在classpath下新建一個配置文件。需要注意的是log4j 2.x版本不再支持像1.x中的.properties后綴的文件配置方式,2.x版本配置文件后綴名只能為".xml",".json"或者".jsn"。
系統選擇配置文件的優先級(從先到后)如下:
classpath下的名為log4j2-test.json 或者log4j2-test.jsn的文件
classpath下的名為log4j2-test.xml的文件
classpath下名為log4j2.json 或者log4j2.jsn的文件
classpath下名為log4j2.xml的文件
我們一般默認使用log4j2.xml進行命名。如果本地要測試,可以把log4j2-test.xml放到classpath,而正式環境使用log4j2.xml,則在打包部署的時候不要打包log4j2-test.xml即可。
默認配置文件:
配置文件實例:
配置文件說明
1.根節點Configuration有兩個屬性:status和monitorinterval,有兩個子節點:Appenders和Loggers(表明可以定義多個Appender和Logger).
status用來指定log4j本身的打印日志的級別.
monitorinterval用于指定log4j自動重新配置的監測間隔時間,單位是s,最小是5s.
2.Appenders節點,常見的有三種子節點:Console、RollingFile、File.
Console節點用來定義輸出到控制臺的Appender.
name:指定Appender的名字.
target:SYSTEM_OUT 或 SYSTEM_ERR,一般只設置默認:SYSTEM_OUT.
PatternLayout:輸出格式,不設置默認為:%m%n.
File節點用來定義輸出到指定位置的文件的Appender.
name:指定Appender的名字.
fileName:指定輸出日志的目的文件帶全路徑的文件名.
PatternLayout:輸出格式,不設置默認為:%m%n.
RollingFile節點用來定義超過指定大小自動刪除舊的創建新的的Appender.
name:指定Appender的名字.
fileName:指定輸出日志的目的文件帶全路徑的文件名.
PatternLayout:輸出格式,不設置默認為:%m%n.
filePattern:指定新建日志文件的名稱格式.
Policies:指定滾動日志的策略,就是什么時候進行新建日志文件輸出日志.
TimeBasedTriggeringPolicy:Policies子節點,基于時間的滾動策略,interval屬性用來指定多久滾動一次,默認是1hour。modulate=true用來調整時間:比如現在是早上3am,interval是4,那么第一次滾動是在4am,接著是8am,12am...而不是7am.
SizeBasedTriggeringPolicy:Policies子節點,基于指定文件大小的滾動策略,size屬性用來定義每個日志文件的大小.
DefaultRolloverStrategy:用來指定同一個文件夾下最多有幾個日志文件時開始刪除最舊的,創建新的(通過max屬性)。
3.Loggers節點,常見的有兩種:Root和Logger.
Root節點用來指定項目的根日志,如果沒有多帶帶指定Logger,那么就會默認使用該Root日志輸出
level:日志輸出級別,共有8個級別,按照從低到高為:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.
AppenderRef:Root的子節點,用來指定該日志輸出到哪個Appender.
Logger節點用來多帶帶指定日志的形式,比如要為指定包下的class指定不同的日志級別等。
level:日志輸出級別,共有8個級別,按照從低到高為:All < Trace < Debug < Info < Warn < Error < Fatal < OFF.
name:用來指定該Logger所適用的類或者類所在的包全路徑,繼承自Root節點.
AppenderRef:Logger的子節點,用來指定該日志輸出到哪個Appender,如果沒有指定,就會默認繼承自Root.如果指定了,那么會在指定的這個Appender和Root的Appender中都會輸出,此時我們可以設置Logger的additivity="false"只在自定義的Appender中進行輸出。
輸出日志/** * */ package com.petro.test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @description 數據庫工具類 * @author PetterChen * @date 2017年10月14日 下午9:38:42 */ public class LogTest { /** * 日志輸出 */ private static Logger log = LoggerFactory.getLogger(LogTest.class); /** * @description 測試 * @date 2017年10月14日 下午9:38:42 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub log.trace("trace"); log.debug("debug"); log.warn("warn"); log.info("info"); log.error("error"); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70925.html
摘要:本文要來分享給大家程序員最常用的日志框架組件。沒有基礎的同學也不要著急,這套教程覆蓋了目前所有的日志框架,只要你學,就一定用得到,先收藏,以備不時之需。 作為一名Java程序員,我們開發了很多Java應用程序,包括桌面應用、WEB應用以及移動應用。然而日志系統是一個成熟Java應用所必不可少的。在開發和調試階段,日志可以幫...
摘要:日志消息,是換行符如果使用作為日志配置文件,還要使用功能,會有以下錯誤切換日志框架可以按照的日志適配圖,進行相關的切換的方式切換為 三、日志 1、日志框架 小張;開發一個大型系統; 1、System.out.println();將關鍵數據打印在控制臺;去掉?寫在一個文件? 2、框架來記錄系統的一些運行時信息;日志框架 ; zhanglogging.jar; 3、高大上的幾個功能?異步...
摘要:我們為啥要用日志最初我們開始接觸的時候,我們通常會使用將我們想要知道的信息打印到控制臺。為什么是默認情況下,會用來記錄日志,并用級別輸出到控制臺。 我們為啥要用日志? 最初我們開始接觸Java的時候,我們通常會使用System.out.println()將我們想要知道的信息打印到控制臺。但是,如果在服務器上我們去運行我們的Java程序,這個時候就凸顯了日志對于一個系統來說的重要性,查找...
摘要:方法會調即啟動當前的,一般就是,若返回為空,則調。若存在多個日志框架,則類加載的有多個,所以是為載入。的方法會調用,若返回的大小超過,則警告。通過完成初始化,即實例化具體的賦值給內部的,如。 SLF4J(Simple logging Facade for Java)是一個日志框架的適配器。如果一個項目已經使用了log4j,而你加載了Apache Active MQ——它依賴于于另外一...
摘要:的橋接器這個橋接器將所有日志委派給的原生實現,直接實現了的接口,因此使用與的搭配也暗示了嚴格的零內存計算溢出未完待補充 起手式 忘了什么時候聽老師說過,牛逼的公司只管定義接口,屌絲廠商實現接口,類似 JDBC 的實現便是如此,用在 slf4j, 總覺得有些類似,本來 SUN 有機會在需求產生之前設計一套漂亮的日志框架來一統天下,可惜偏偏要拖到 JDK1.4, 而這套原生的日志框架也沒有...
閱讀 3164·2021-11-19 09:40
閱讀 3653·2021-11-16 11:52
閱讀 2984·2021-11-11 16:55
閱讀 3174·2019-08-30 15:55
閱讀 1182·2019-08-30 13:08
閱讀 1659·2019-08-29 17:03
閱讀 3016·2019-08-29 16:19
閱讀 2583·2019-08-29 13:43