首页 文章

log4j2:使用属性登录到滚动文件和标准输出

提问于
浏览
1

我想要创建一个 Logger ,同时记录到滚动文件和我的控制台 . 每个单独的工作完美,但只结合滚动工作 . 也许我做错了什么,并没有理解log4j2 .

我希望有一个人可以帮助我 .

我的属性文件如下:

status =错误

name = PropertiesConfig

filters = threshold

filter.threshold.type = ThresholdFilter

filter.threshold.level = debug

appenders = console,滚动

appender.console.type =控制台

appender.console.name = STDOUT

appender.console.layout.type = PatternLayout

appender.console.layout.pattern =%-4r%-5p [%t]%c - %m%n

appender.rolling.type = RollingFile

appender.rolling.name = RollingFile

appender.rolling.fileName = mypathtofilehere

appender.rolling.filePattern = CrashDesigner-%d - %i.log.gz

appender.rolling.layout.type = PatternLayout

appender.rolling.layout.pattern =%d {yyyy-MM-dd HH:mm:ss}%-5p%c {1}:%L - %m%n

appender.rolling.policies.type =政策

appender.rolling.policies.size.type = SizeBasedTriggeringPolicy

appender.rolling.policies.size.size = 10MB

appender.rolling.strategy.type = DefaultRolloverStrategy

appender.rolling.strategy.max = 40

loggers = rolling.file

logger.rolling.file.name = com.myapp

logger.rolling.file.level = debug

logger.rolling.file.additivity = false

logger.rolling.file.appenderRefs =滚动

logger.rolling.file.appenderRef.rolling.ref = RollingFile

rootLogger.level = debug

rootLogger.appenderRefs = stdout

rootLogger.appenderRef.stdout.ref = STDOUT

2 回答

  • 0

    我在这看到两种可能性 . 或

    • 将以下行更改为true: logger.rolling.file.additivity = true

    要么

    • 添加第二个AppenderRef logger.rolling.file.appenderRef.stdout.ref = STDOUT

    你也应该用 .appenderRefs 删除行 . log4j2中没有这样的appenderRef s 实体 .

  • 0

    每个 Logger 都可以写入多个appender . 为此,它应该引用所有这些appender,这可以使用appenderRefs实现 .

    logger.rolling.file.appenderRefs = rolling, stdout
    
    logger.rolling.file.appenderRef.rolling.ref = RollingFile
    
    logger.rolling.file.appenderRef.stdout.ref = STDOUT
    

    这将使 Logger 'rolling.file'触发的每个logevent附加到appenders STDOUT和RollingFle .

相关问题