[英]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.