我使用log4j来记录我的应用程序中的一些步骤。为了快速和肮脏,我使用了:
org.apache.log4j.BasicConfigurator.configure();
这输出我在Eclipse控制台中的日志。
我想知道是否以及如何将级别阈值设置为高于DEBUG?换句话说,我不想显示DEBUG级别的消息,只需要显示ERR,WARN,INFO。
谢谢。
修改 我可以使用以下这个吗?
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
[...]
Logger logger = Logger.getLogger(this.class);
logger.setLevel(Level.INFO);
答案 0 :(得分:32)
我认为最简单的方法是:
Logger.getRootLogger().setLevel(Level.INFO);
答案 1 :(得分:4)
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
答案 2 :(得分:2)
假设您在调用任何记录器之前调用BasicConfigurator.configure():
您可以使用其中任何一个配置文件进行更改而无需重新编译:
log4j.rootLogger=INFO
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<root>
<priority value="INFO"/>
</root>
</log4j:configuration>
其中一个必须在命令行上。
答案 3 :(得分:1)
1)找到你的appender,你可以在你的log4j.xml配置文件中有这样的东西。
<appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="C:/logs/rmDebug.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="1500KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="**FOOBAR** %d{dd.MM.yyyy HH:mm:ss} %c %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
你看到levelMin和LevelMax值? levelMin是您开始记录的位置,而levelMax是您停止记录的位置。 (用这个特定的appender)。你可以有几个appender。
然后将此appender分配给类或包。你可以这样做:
<category name="com.foobar.automation.doremiResourceManager" additivity="true">
<appender-ref ref="DEBUG"/>
</category>
答案 4 :(得分:1)
如果未在属性文件中进行配置,请使用:
Logger root = Logger.getRootLogger();
root.setLevel(Level.INFO);
root.addAppender(new ConsoleAppender(
new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));
答案 5 :(得分:0)
BasicConfigurator.configure()所做的是将根记录器添加到ConsoleAppender并将appender布局设置为PatternLayout,格式为“%r [%t]%-5p%c - %m%n”。所以你需要设置根记录器的级别。如果您只设置此类记录器的级别,则根记录器的级别保持不变,则所有其他记录器(此类除外)仍可能使用root记录器的级别,因此您仍将看到不需要的日志。