【问题标题】:log4j: Single appender block to set log level not working for melog4j:设置日志级别的单个附加程序块对我不起作用
【发布时间】:2019-03-22 04:25:38
【问题描述】:

在尝试将 zookeeper 日志级别设置为从环境变量设置的值时,错误包含以下消息:

2018-10-17T00:45:32.658628+00:00 cherry-zk-node zookeeper: log4j:ERROR Could not find value for key log4j.appender.TRACE
2018-10-17T00:45:32.658902+00:00 cherry-zk-node zookeeper: log4j:ERROR Could not instantiate appender named "TRACE".
2018-10-17T12:45:32.692874+00:00 cherry-zk-node zookeeper: log4j:ERROR Could not find value for key log4j.appender.TRACEFILE
2018-10-17T00:45:32.693154+00:00 cherry-zk-node zookeeper: log4j:ERROR Could not instantiate appender named "TRACEFILE".

下面附上log4j.properties文件

zookeeper.root.logger=$ENV_VARIABLE
zookeeper.console.threshold=$ENV_VARIABLE
zookeeper.log.file=zk.log
zookeeper.log.threshold=$ENV_VARIABLE
zookeeper.log.dir=.

log4j.rootLogger=${zookeeper.root.logger}

# CONSOLE  
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold}
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

# Set Appenders for ALL log levels from ENV variable
log4j.appender.WARN.Threshold=${zookeeper.console.threshold}
log4j.appender.INFO.Threshold=${zookeeper.console.threshold}
log4j.appender.ERROR.Threshold=${zookeeper.console.threshold}
log4j.appender.TRACE.Threshold=${zookeeper.console.threshold}

# Max log file size of 25MB
log4j.appender.ROLLINGFILE.MaxFileSize=25MB

【问题讨论】:

    标签: log4j apache-zookeeper appender


    【解决方案1】:

    根据您的错误消息,您应该添加名为“log4j.appender.TRACE”和“log4j.appender.TRACEFILE”的附加程序。也许您可以先从 ENV_VARIABLE 中删除“TRACEFILE”,这似乎是重复的。

    添加

    log4j.appender.TRACE=org.apache.log4j.FileAppender
    log4j.appender.TRACE.File=${zookeeper.tracelog.dir}/${zookeeper.tracelog.file}
    log4j.appender.TRACE.layout=org.apache.log4j.PatternLayout
    log4j.appender.TRACE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L][%x] - %m%n
    

    log4j.properties结尾

    【讨论】:

    • 感谢@sel-fish 抽出时间回复!我尝试了这个建议,但它还无法识别通过环境变量提供的“跟踪”!即使提供的环境变量是“跟踪”,它也以某种方式限制在“调试”级别。 log4j 中是否对仅“跟踪”模式有特殊处理?
    • @Keep 我认为 log4j 中的“跟踪”没有特殊处理。你能分享你的 ENV_VARIABLE 吗?
    • 环境变量设置如下:ZOO_LOG4J_PROP="TRACE"
    • @Keep 你能在帖子中分享更多细节吗?包括您运行的命令。日志配置中似乎没有提到“ZOO_LOG4J_PROP”。
    • 对不起@sel-fish。哎呀,'是一个错字。本来是 ENV_VARIABLE="TRACE"
    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多