log4j基本配置

时间:2009-10-02 12:51:28

标签: log4j

我使用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);

6 个答案:

答案 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.properties

log4j.rootLogger=INFO

的log4j.xml:

<?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记录器的级别,因此您仍将看到不需要的日志。

请参阅http://logging.apache.org/log4j/1.2/manual.html