问题描述
有时仅在执行代码的特定阶段(例如用于调试目的)的特定阶段,才需要在运行时启用/禁用记录. 现在,我使用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.
问题描述
Sometimes logging needs to be enabled/disabled at runtime only during a specific phase of the execution of a code (e.g. for debugging purposes). Now, I use Java and Log4J to debug. This is my log4j.properties file:
# 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
As you may see, I log both on a file and on the console output.
Now, suppose that I have a class X from package foo. How can I enable and disable the logging at runtime? Here I found a possible answer, but an example would be really appreciated.
推荐答案
Try using something like :
LogManager.getRootLogger().setLevel(Level.DEBUG);
You can also get the exact logger passing class into the get.