базовая конфигурация log4j - PullRequest
28 голосов
/ 02 октября 2009

Я использовал log4j для регистрации некоторых шагов в моем приложении. Чтобы быть быстрым и грязным, я использовал:

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

Это выводит мои логи в консоль Eclipse.

Я хочу знать, если и как установить пороговое значение уровня выше, чем DEBUG? Другими словами, я не хочу отображать сообщение об уровне DEBUG, просто ERR, WARN, INFO.

Спасибо.

EDIT: Могу ли я использовать это следующее?

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

Ответы [ 6 ]

32 голосов
/ 02 октября 2009

Я думаю, что самый простой способ будет:

    Logger.getRootLogger().setLevel(Level.INFO);
4 голосов
/ 08 февраля 2014
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
2 голосов
/ 15 декабря 2010

Предполагается, что вы вызываете 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 голос
/ 06 марта 2017

Если вы не настраиваете внутри файла свойств, используйте это:

Logger root = Logger.getRootLogger();
root.setLevel(Level.INFO);
root.addAppender(new ConsoleAppender(
        new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));
1 голос
/ 02 октября 2009

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> 
0 голосов
/ 14 мая 2014

BasicConfigurator.configure () выполняет добавление корневого регистратора в ConsoleAppender и задает макет appender для PatternLayout с шаблоном "% r [% t]% -5p% c -% m% n". Так что вам нужно установить уровень корневого логгера. Если вы установите уровень только для регистратора этого класса, уровень корневого регистратора не изменится, тогда все другие регистраторы (кроме этого класса) могут по-прежнему использовать уровень корневого регистратора, поэтому вы все равно увидите нежелательные журналы.

См. http://logging.apache.org/log4j/1.2/manual.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...