版本:WEB-INF/lib/log4j-1.2.17.jar
配置文件路徑 \src\log4j.properties
簡(jiǎn)介:Log4j是Apache下的一款開(kāi)源的日志框架,能夠滿足我們?cè)陧?xiàng)目中對(duì)于日志記錄的需求趣效。
本次主要針對(duì)項(xiàng)目中l(wèi)og4j.properties的配置項(xiàng)進(jìn)行整理迈窟,方便理解和以后擴(kuò)展使用。
log4j.rootLogger=INFO,CONSOLE,LOGFILE
配置日志級(jí)別以及日志輸出的地方漠烧;
INFO為日志級(jí)別,日志一般分5個(gè)等級(jí),從低到高分別是 DEBUG INFO WARN ERROR FATAL。
priority :debug<info<warn<error<fatal
開(kāi)始環(huán)境一般為DEBUG诽偷,生產(chǎn)環(huán)境為了防止過(guò)多的日志影響系統(tǒng)性能(頻繁的IO輸出)可以設(shè)置為WARN;
CONSOLE,LOGFILE 為日志輸出的地方疯坤,名字可以任意命名报慕,但和下面的log4j.appender.CONSOLE、log4j.appender.LOGFIL要對(duì)應(yīng)一致压怠;
info LOGFILE
具體配置眠冈,LOGFILE的配置,與上面對(duì)應(yīng)刑峡;
log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender
org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個(gè)日志文件)
其他輸出方式:
org.apache.log4j.ConsoleAppender(控制臺(tái)),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.RollingFileAppender(文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件),
org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)
log4j.appender.LOGFILE.File=kstrap.log
日志輸出文件名洋闽,對(duì)應(yīng)下項(xiàng)目日志:
-rw-r--r-- 1 smartyd dba 152960 Apr 1 17:32 kstrap.log
log4j.appender.LOGFILE.Encoding=UTF-8
日志輸出編碼格式
log4j.appender.LOGFILE.Append = true
日志輸出是否追加玄柠,默認(rèn)就是true突梦,系統(tǒng)啟動(dòng)時(shí)追加至文件中,否則會(huì)覆蓋原有內(nèi)容羽利;
-rw-r--r-- 1 smartyd dba 87936 Feb 18 2023 kstrap.log.20230218
log4j.appender.LOGFILE.DatePattern = '.'yyyyMMdd
日志輸出文件按天進(jìn)行分割:例如:
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
使用指定的Layout來(lái)展示(格式化)日志:
org.apache.log4j.PatternLayout(可以靈活地指定布局模式)
其他:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.SimpleLayout(包含日志信息的級(jí)別和信息字符串)
org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時(shí)間宫患、線程、類(lèi)別等等信息
log4j.appender.LOGFILE.layout.ConversionPattern=[kstrap] %p %d{yyyy-MM-dd HH:mm:ss,SSS} %C.%M(%L) %m%n
實(shí)際樣例:
[kstrap] INFO 2020-04-01 17:01:40,866 com.kayak.web.base.action.DictAction.dictJson(34) ##### dict json result : {"M01":"每月","M03":"每季","M12":"每年","Z":"到期結(jié)息"}
指定布局模式:【重點(diǎn)】附對(duì)應(yīng)拆解:
[kstrap] 固定字符 >>kstrap
%p 輸出優(yōu)先級(jí)这弧,如果是調(diào)用debug()輸出的娃闲,則為DEBUG,依此類(lèi)推 >>INFO
%d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間匾浪,默認(rèn)格式為ISO8601皇帮,也可以在其后指定格式。 >>2020-04-01 17:01:40,866
%C 列出調(diào)用logger的類(lèi)的全名(包含包路徑) >>com.kayak.web.base.action.DictAction
%M 顯示調(diào)用logger的方法名 >>dictJson
%L 顯示調(diào)用logger的代碼行 >>34
%m 輸出代碼中指定的信息 >>##### dict json result : {"M01":"每月","M03":"每季","M12":"每年","Z":"到期結(jié)息"}
%n 出一個(gè)回車(chē)換行符蛋辈,Windows平臺(tái)為“rn”属拾,Unix平臺(tái)為“n”
log4j.appender.LOGFILE.threshold=INFO
輸出IFNO級(jí)別以上的日志将谊,rootLogger設(shè)置為DEBUG時(shí),只輸出INFO以上(INFO渐白、WARN尊浓、ERROR、FATAL)的信息到文件中去纯衍,而DEBUG信息就不會(huì)輸出了栋齿;
CONSOLE的配置,與上面LOGFILE類(lèi)似襟诸,不多講了瓦堵。
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout.ConversionPattern=[kstrap] %p %d{yyyy-MM-dd HH:mm:ss,SSS} %C.%M(%L) %m%n
log4j.appender.CONSOLE.threshold=INFO