繁体   English   中英

Log4J:是否可以在运行时从类启用/禁用日志记录?

[英]Log4J: can I enable/disable logging from a class at runtime?

有时,仅在代码执行的特定阶段(例如,出于调试目的)才需要在运行时启用/禁用日志记录。 现在,我使用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

如您所见,我同时登录文件和控制台输出。

现在,假设我有一个来自foo包的X类。 如何在运行时启用和禁用日志记录? 在这里,我找到了一个可能的答案,但是一个示例将不胜感激。

尝试使用类似:

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

您还可以将确切的记录器传递类传递到get中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM