properties配置
通常log42j的配置都是通過xml的語法形式鳖眼,但也支持java配置文件properties的形式來配置
# Rolling file appender
log4j2.appender.rolling.type = RollingRandomAccessFile
log4j2.appender.rolling.name = RollingFile
log4j2.appender.rolling.fileName = ${karaf.data}/log/karaf.log
#log4j2.appender.rolling.filePattern = ${karaf.data}/log/karaf.log.%i
log4j2.appender.rolling.filePattern = ${karaf.data}/log/karaf_%d{yyyy-MM-dd-HH-mm}_%i.log
log4j2.appender.rolling.rollstrategy.type = DefaultRolloverStrategy
log4j2.appender.rolling.rollstrategy.max = 5
log4j2.appender.rolling.append = true
log4j2.appender.rolling.layout.type = PatternLayout
log4j2.appender.rolling.layout.pattern = ${log4j2.pattern}
log4j2.appender.rolling.policies.type = Policies
log4j2.appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.rolling.policies.size.size = 16MB
log4j2.appender.rolling.policies.timepolice.type = TimeBasedTriggeringPolicy
log4j2.appender.rolling.policies.timepolice.interval = 1
log4j2.appender.rolling.policies.timepolice.modulate = true
xxx.type代表的對應(yīng)的一個節(jié)點的開始孽尽,節(jié)點類型通過type來設(shè)置對應(yīng)
比如rolling.type=RollingRandomAccessFile 將rolling設(shè)置為RollingRandomAccessFile類型忍啤,之后就可以通過
- rolling.name
- rolling.fileName
來設(shè)置這個節(jié)點的屬性低淡,其中rolling名字為自定義的名稱
對應(yīng)的xml配置應(yīng)該為
<RollingRandomAccessFile name = "RollingFile", fileName="${karaf.data}/log/karaf.log">
...
</RollingRandomAccessFile>
配置相關(guān)科參考官方文檔
https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingRandomAccessFileAppender
https://logging.apache.org/log4j/2.x/manual/configuration.html
TimeBasedTriggeringPolicy
該屬性必須和filePattern配合
如filePattern = ${karaf.data}/log/karaf_%d{yyyy-MM-dd-HH-mm}%i.log 代表按分鐘劃分文件
filePattern = ${karaf.data}/log/karaf%d{yyyy-MM-dd}_%i.log 代表按天劃分文件
DefaultRolloverStrategy
<DefaultRolloverStrategy max=5>表示保存的文件個數(shù),如果和TimeBasedTriggeringPolicy策略按時間段劃分文件配合巴粪,則表示該時間段內(nèi)能保存的最大文件個數(shù)
custom delete action
<DefaultRolloverStrategy>節(jié)點下的 custom delete action 用于自定義文件刪除的策略,如設(shè)置多少時間后刪除對應(yīng)的文件
這個功能需要 log4j-2.5以后的版本,具體可參考文檔
https://logging.apache.org/log4j/2.x/manual/appenders.html#CustomDeleteOnRollover