web-dev-qa-db-ja.com

log4jの基本構成

Log4jを使用して、アプリケーションのいくつかのステップを記録しました。迅速かつ汚くするために、私は以下を使用しました:

org.Apache.log4j.BasicConfigurator.configure();

これにより、Eclipseコンソールにログが出力されます。

レベルのしきい値をDEBUGより高く設定するかどうか、またその設定方法を知りたいですか?つまり、デバッグレベルのメッセージは表示せず、ERR、WARN、INFOだけを表示します。

ありがとうございました。

編集:以下を使用できますか?

import org.Apache.log4j.Logger;
import org.Apache.log4j.Level;
[...]
Logger logger = Logger.getLogger(this.class);
logger.setLevel(Level.INFO);
28
enguerran

私は最も簡単な方法は次のようになると思います:

    Logger.getRootLogger().setLevel(Level.INFO);
33
Wolfgang
org.Apache.log4j.Logger.getRootLogger().setLevel(org.Apache.log4j.Level.INFO);
4
positiveman

ロガーが呼び出される前に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>

これらの1つはコマンドライン上になければなりません。

2
ddcruver

プロパティファイル内で設定しない場合は、次のように使用します。

Logger root = Logger.getRootLogger();
root.setLevel(Level.INFO);
root.addAppender(new ConsoleAppender(
        new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));
1
ufukomer

1)アペンダーを見つけます。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はログの記録を停止する場所です。 (この特定のアペンダー付き)。複数のアペンダーを使用できます。

次に、このアペンダーをクラスまたはパッケージに割り当てます。あなたはそのようなことをすることができます:

    <category name="com.foobar.automation.doremiResourceManager" additivity="true">
    <appender-ref ref="DEBUG"/>
</category> 
1
Antoine Claval

BasicConfigurator.configure()が行うことは、ルートロガーをConsoleAppenderに追加し、アペンダーのレイアウトをパターン "%r [%t]%-5p%c-%m%n"のPatternLayoutに設定することです。したがって、ルートロガーのレベルを設定する必要があります。このクラスのロガーのレベルのみを設定した場合、ルートロガーのレベルは変更されず、他のすべてのロガー(このクラスを除く)は引き続きルートロガーのレベルを使用する可能性があるため、不要なログが引き続き表示されます。

http://logging.Apache.org/log4j/1.2/manual.html を参照してください。

0
D_S_toowhite