log4j2自定义参数动态打印到日志中,解决配置文件只能写死参数的问题
#log4j系统参数,不用动
status = error
#修改控制台日志级别,打包前改成fatal,TRACE < DEBUG < INFO < WARN < ERROR < FATAL
property.CONSOLE_LOG_LEVEL=info
#日志文件保存路径需根据工程部署位置修改路径
property.LOG_HOME=/app/elk/logs/
#log4jProperties里的参数,通过这种方式获取
property.envir=${sys:envir}
property.appName=${sys:appName}
property.fileNameMd5=${sys:fileNameMd5}
property.rechargeEnv=${sys:rechargeEnv}
#系统日志级别不用动
property.OUTPUT_LOG_LEVEL=trace
property.BACKUP_HOME=backup
property.EVERY_FILE_SIZE=10M
property.FILE_MAX=10
# 日志要发到什么地方,控制台
appender.console.type = Console
# 本appender的名字,以便在Logger的配置项中能够调用
appender.console.name = STDOUT
#过滤器,过滤日志的级别
appender.console.filter.threshold.level = ${CONSOLE_LOG_LEVEL}
#过滤类型
appender.console.filter.threshold.type = ThresholdFilter
# 输出格式类型
appender.console.layout.type = PatternLayout
# 输出格式,不设置默认为 %m%n
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %5p ${appName} ${envir} %c{1}:%L - %m%n
# 采用RollingFile类型的Appender
appender.rollingFile.type=RollingFile
# 本appender的名字,以便在Logger的配置项中能够调用
appender.rollingFile.name=RollingFileAll
#过滤器,过滤日志的级别,可根据要保存的日志级别修改,建议不动
appender.rollingFile.filter.threshold.level = info
#过滤类型
appender.rollingFile.filter.threshold.type = ThresholdFilter
# 当前正在操作的日志文件的文件名
appender.rollingFile.fileName=${LOG_HOME}/${appName}_new_${fileNameMd5}.log
# 归档后的日志文件的文件名格式,其中`%d{yyyy-MM-dd}`用来自动填充日期,这里配置到天就是按天归档,配置到小时就是按小时归档
appender.rollingFile.filePattern=${LOG_HOME}/${appName}_old_${fileNameMd5}.log.%d{yyyy-MM-dd}
# 启用Layout配置
appender.rollingFile.layout.type=PatternLayout
# 对应输出的每条日志的日志头
appender.rollingFile.layout.pattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p ${appName} ${envir} %c{1}:%L - %m%n
# 启用Policy配置,指定滚动日志的策略
appender.rollingFile.policies.type=Policies
# 基于时间进行日志的切割,根据filePattern配置的日期格式而定
appender.rollingFile.policies.time.type=TimeBasedTriggeringPolicy
# 切割的间隔单位为1, 根据filePattern配置的日期格式归档
appender.rollingFile.policies.time.interval=1
# 修正时间范围, 从0时开始计数
appender.rollingFile.policies.time.modulate=true
#基于文件大小进行日志的切割
#appender.rolling.policies.size.type=SizeBasedTriggeringPolicy
#文件大小
#appender.rolling.policies.size.size=${EVERY_FILE_SIZE}
#配置Strategy用来删除过多的日志归档文件
#appender.rolling.strategy.type=DefaultRolloverStrategy
#错误日志配置
appender.error.type=RollingFile
appender.error.name=RollingFileError
appender.error.filter.threshold.level = error
appender.error.filter.threshold.type = ThresholdFilter
appender.error.fileName=${LOG_HOME}/error/${appName}/${appName}_error_${fileNameMd5}.log
appender.error.filePattern=${LOG_HOME}/error/${appName}/history/${appName}_old_error_${fileNameMd5}.log.%d{yyyy-MM-dd}
appender.error.layout.type=PatternLayout
appender.error.layout.pattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p ${appName} ${envir} %c{1}:%L - %m%n
appender.error.policies.type=Policies
appender.error.policies.time.type=TimeBasedTriggeringPolicy
appender.error.policies.time.interval=1
appender.error.policies.time.modulate=true
#appender.error.policies.size.type=SizeBasedTriggeringPolicy
#appender.error.policies.size.size=${EVERY_FILE_SIZE}
#appender.error.strategy.type=DefaultRolloverStrategy
# 用来指定该Logger所适用的类或者类所在的包全路径,继承自Root节点。一般是项目包名或者框架的包名,单独对这个处理
#logger.activity.name = com.cu.indenture.config
# 设置日志级别
#logger.activity.level = debug
# 是否向上级logger传递信息
#logger.activity.additivity = false
# 关联名称为RollingFileAll的输出源(appender)
#logger.activity.appenderRef.all.ref = RollingFileAll
#logger.activity.appenderRef.error.ref = RollingFileError
#logger.activity.appenderRef.stdout.ref = STDOUT
#日志级别,不用动
rootLogger.level = ${OUTPUT_LOG_LEVEL}
#用来指定该日志输出到哪个 Appender
rootLogger.appenderRef.stdout.ref = STDOUT
#用来指定该日志输出到哪个 Appender
rootLogger.appenderRef.all.ref = RollingFileAll
#用来指定该日志输出到哪个 Appender
rootLogger.appenderRef.error.ref = RollingFileError