Ответ 1
Я думаю, что самый простой способ:
Logger.getRootLogger().setLevel(Level.INFO);
Я использовал 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);
Я думаю, что самый простой способ:
Logger.getRootLogger().setLevel(Level.INFO);
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
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>
Вы видите значение уровняMin и LevelMax? levelMin - это место, где вы начинаете регистрироваться, и levelMax, где вы останавливаете запись. (с этим конкретным приложением). У вас может быть несколько приложений.
Затем для назначения этого appender классу или пакету. Вы можете сделать что-то вроде этого:
<category name="com.foobar.automation.doremiResourceManager" additivity="true">
<appender-ref ref="DEBUG"/>
</category>
Предполагая, что вы вызываете 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>
Один из них должен находиться в командной строке.
Если вы не настраиваете внутри файла свойств, используйте это:
Logger root = Logger.getRootLogger();
root.setLevel(Level.INFO);
root.addAppender(new ConsoleAppender(
new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));
Что делает BasicConfigurator.configure(), добавление корневого регистратора в ConsoleAppender и установка макета приложения в PatternLayout с шаблоном "% r [% t]% -5p% c -% m% n". Поэтому вам нужно установить уровень корневого регистратора. Если вы задаете только уровень регистратора этого класса, уровень корневого регистратора не изменяется, тогда все остальные регистраторы (кроме этого класса) могут по-прежнему использовать уровень корневого регистратора, поэтому вы все равно увидите нежелательные журналы.