Log4J:我可以在运行时启用/禁用类的日志记录吗?

时间:2014-06-20 07:57:21

标签: java logging log4j

有时,只有在代码执行的特定阶段(例如,出于调试目的),才需要在运行时启用/禁用日志记录。 现在,我使用Java和Log4J进行调试。这是我的log4j.properties文件:

# Define the root logger with appender file
log = /Users/Admin/Documents/log4j
log4j.rootLogger = DEBUG, stdout, file

#Logging for class Solution in package org.solver will be disabled
log4j.category.org.solver.Solution = OFF, stdout, file

# Define the file Console appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Define the file file appender
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=${log}/log.out

# Define the layout for file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%m%n

正如您所看到的,我在文件和控制台输出上都记录了这些内容。

现在,假设我有来自包X的课程foo。如何在运行时启用和禁用日志记录? Here我找到了一个可能的答案,但我会非常感激一个例子。

1 个答案:

答案 0 :(得分:1)

尝试使用以下内容:

LogManager.getRootLogger().setLevel(Level.DEBUG);

您还可以将准确的记录器传递给get。