Log4j2 使用 rollingFileAppender 自定义文件路径 (Java)
Log4j2 customize file path with rollingFileAppender (Java)
我正在从我的 spring 启动应用程序中的 log4j 1.x 迁移到 log4j2。在 log4j 1.x 我曾经定义属性如下:
log4j.appender.A1=package.CustomRollingFileAppender
log4j.appender.A1.File=<base.path>/company/logs/main.log
在我的 CustomRollingFileAppender 中,我将使用 DailyRollingFileAppender 扩展此 class,并覆盖 setName() 方法以将我的“”更改为相关目录名称。
迁移到 log4j 2.x 我不再拥有 class DailyRollingFileAppender 并且无法扩展 RollingFileAppender,因为它被声明为 final。我也无法覆盖 writeToName 函数。
那么,如何根据我的环境静态属性将属性文件中的 更改为相关目录名称?
您通常不会接触 log4j2 的实现代码类。你想做的事情可以通过 configuration.
完成
https://logging.apache.org/log4j/2.x/manual/migration.html
https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender
你可以像这样做你想做的事
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${BASE_DIR}/application.log
appender.rolling.filePattern = ${BASE_DIR}/application.%d{dd-MMM}.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 5
logger.rolling.name = rollingFile
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile
其中 BASE_DIR
是一个环境变量
我正在从我的 spring 启动应用程序中的 log4j 1.x 迁移到 log4j2。在 log4j 1.x 我曾经定义属性如下:
log4j.appender.A1=package.CustomRollingFileAppender
log4j.appender.A1.File=<base.path>/company/logs/main.log
在我的 CustomRollingFileAppender 中,我将使用 DailyRollingFileAppender 扩展此 class,并覆盖 setName() 方法以将我的“
迁移到 log4j 2.x 我不再拥有 class DailyRollingFileAppender 并且无法扩展 RollingFileAppender,因为它被声明为 final。我也无法覆盖 writeToName 函数。
那么,如何根据我的环境静态属性将属性文件中的
您通常不会接触 log4j2 的实现代码类。你想做的事情可以通过 configuration.
完成https://logging.apache.org/log4j/2.x/manual/migration.html https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender
你可以像这样做你想做的事
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${BASE_DIR}/application.log
appender.rolling.filePattern = ${BASE_DIR}/application.%d{dd-MMM}.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 5
logger.rolling.name = rollingFile
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile
其中 BASE_DIR
是一个环境变量