log4j2 配置相关问题备忘

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代表的对应的一个节点的开始,节点类型通过type来设置对应
比如rolling.type=RollingRandomAccessFile 将rolling设置为RollingRandomAccessFile类型,之后就可以通过

  • rolling.name
  • rolling.fileName

来设置这个节点的属性,其中rolling名字为自定义的名称
对应的xml配置应该为

<RollingRandomAccessFile name = "RollingFile", fileName="${karaf.data}/log/karaf.log">
   ...
</RollingRandomAccessFile>

配置相关科参考官方文档

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>表示保存的文件个数,如果和TimeBasedTriggeringPolicy策略按时间段划分文件配合,则表示该时间段内能保存的最大文件个数

custom delete action

<DefaultRolloverStrategy>节点下的 custom delete action 用于自定义文件删除的策略,如设置多少时间后删除对应的文件

这个功能需要 log4j-2.5以后的版本,具体可参考文档
https://logging.apache.org/log4j/2.x/manual/appenders.html#CustomDeleteOnRollover

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,485评论 1 13
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,434评论 0 6
  • 一、Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layo...
    默默守护阅读 5,885评论 2 8
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一、L...
    enshunyan阅读 8,554评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,448评论 19 139