Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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_Logback_Apache Commons Logging - Fatal编程技术网

在java中,如何限制子类日志级别传播到父类?

在java中,如何限制子类日志级别传播到父类?,java,logging,logback,apache-commons-logging,Java,Logging,Logback,Apache Commons Logging,我分析了应用程序日志,发现有很多调试日志来自spring库中的一个类 我在spring中扩展了一个类,如果我的自定义类的日志级别设置为debug,那么该类将打开整个父层次结构中的调试日志 我想为所有特定于应用程序的类设置调试日志级别,同时将其余所有类设置为info。在日志配置文件中定义两个不同的记录器,一个在info级别,另一个在调试级别,如下所示: #Logger option with DEBUG for package1 log4j.logger.com.package1=DEBUG,De

我分析了应用程序日志,发现有很多调试日志来自spring库中的一个类

我在spring中扩展了一个类,如果我的自定义类的日志级别设置为debug,那么该类将打开整个父层次结构中的调试日志


我想为所有特定于应用程序的类设置调试日志级别,同时将其余所有类设置为info。

在日志配置文件中定义两个不同的记录器,一个在info级别,另一个在调试级别,如下所示:

#Logger option with DEBUG for package1
log4j.logger.com.package1=DEBUG,DebugFileAppender

#Logger option with INFO for package1
log4j.logger.com.package1=INFO,InfoFileAppender

log4j.appender.DebugFileAppender=org.apache.log4j.FileAppender
log4j.appender.DebugFileAppender.File=debug.log
log4j.appender.DebugFileAppender.MaxFileSize=100MB
log4j.appender.DebugFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebugFileAppender.layout.ConversionPattern= %5p [%t] (%F:%L) - %m%n

log4j.appender.InfoFileAppender=org.apache.log4j.FileAppender
log4j.appender.InfoFileAppender.File=info.log
log4j.appender.InfoFileAppender.MaxFileSize=100MB
log4j.appender.InfoFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.InfoFileAppender.layout.ConversionPattern= %5p [%t] (%F:%L) - %m%n

我考虑过这个,但这样做并不方便。如果将来我扩展某个类,我将不得不再次在日志配置文件中创建一个条目。是否还有其他选项可用,比如告诉日志框架不要在层次结构中向上传播日志级别?@Tushu:您可以在包级别而不是类级别进行配置,对吗?这没有帮助吗?每个包配置日志记录肯定是一个选项,但这不是很方便。任何不知情的用户都可以扩展一个类,而无需在日志配置文件中输入导致大量日志的条目。我搜索的是一种防止父类的日志级别被子类调试级别更新的方法。如果我将rootlogger设置为INFO,那么我希望所有其他类都保持该级别。