如何设置特定类和包的日志级别?

问题描述 投票:1回答:1

这是我的log4j内容,它位于.properties文件中

logging.rootLogger=@DEBUG_LEVEL@, stdout, rollingFile, smtp
##logging.appender.stdout.Threshold=@DEBUG_LEVEL@
logging.appender.stdout=org.apache.log4j.ConsoleAppender
logging.appender.stdout.layout=org.apache.log4j.PatternLayout
logging.appender.stdout.layout.ConversionPattern=%d %-5p %c [%M:%L] %m%n

@ DEBUG_LEVEL @这是在单独的“appenv.bash”文件中设置的,对于不同的环境,它的设置方式不同。在生产中它被设置为ERROR,我想在特定类中使用INFO作为一种方法。如此INFO,DEBUG将不会在生产环境中显示。

如何在一个包中为一个特定类设置日志级别为INFO?

java logging log4j
1个回答
0
投票

你在这里声明了一个logger,即rootLogger。它是所有记录器的“父”,因此如果您需要细粒度配置,则必须声明更具体的记录器。

以下行为com.foo.bar包下的所有类创建一个记录器:

log4j.logger.com.foo=WARN, stdout

您的类必须以这种方式实例化记录器:

Logger logger = Logger.getLogger(MyClass.class.getCanonicalName());

但你可以在这里放任何字符串,例如:

log4j.logger.onlyoneclasswilluseit=WARN, stdout

并以这种方式得到它:

Logger logger = Logger.getLogger("onlyoneclasswilluseit");
© www.soinside.com 2019 - 2024. All rights reserved.