Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单个记录器的每个附加器的日志级别_Java_Logging_Log4j - Fatal编程技术网

Java 单个记录器的每个附加器的日志级别

Java 单个记录器的每个附加器的日志级别,java,logging,log4j,Java,Logging,Log4j,是否可以基于appender为单个记录器配置不同的日志级别 我意识到这与此类似,这是我自己已经得到的,但问题是阈值适用于所有记录到该appender的记录器,而我只希望阈值适用于单个记录器 i、 e.到目前为止,我有这样的想法: log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold=WARN log4j.append

是否可以基于appender为单个记录器配置不同的日志级别

我意识到这与此类似,这是我自己已经得到的,但问题是阈值适用于所有记录到该appender的记录器,而我只希望阈值适用于单个记录器

i、 e.到目前为止,我有这样的想法:

log4j.rootLogger=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=WARN
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

log4j.logger.mylogger=DEBUG,logfile
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern=${roll.pattern.daily}
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{${datestamp}} [%t] %-5p %C{2} - %m%n
log4j.appender.logfile.File=mylogfile.log

我希望mylogger调试消息被发送到日志文件附件,但我也希望mylogger信息消息被发送到stdout附件(但对于所有其他记录器,仅警告)。使用Threshold to limit stdout to WARN限制mylogger的输出,我通过更改

log4j.appender.stdout.Threshold=WARN


第一次应该更加小心。

我建议使用XML格式,它更容易理解,而且它公开了属性文件无法提供的功能。很好!一年后,这对我非常有用:-D不过我是在运行时从应用程序内部这样做的:myAppender.setThreshold(Level.INFO)。log4j2呢?
log4j.appender.stdout.Threshold=INFO