1

这是我在 .properties 文件中的 log4j 内容

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 用于一种方法。作为此信息,DEBUG 不会在生产环境中显示。

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

4

1 回答 1

0

您在这里声明了一个记录器,即 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");
于 2013-05-13T22:28:15.280 回答