log4j基本配置
我使用log4j记录应用程序中的一些步骤。为了快速和肮脏,我使用了:log4j基本配置,log4j,Log4j,我使用log4j记录应用程序中的一些步骤。为了快速和肮脏,我使用了: org.apache.log4j.BasicConfigurator.configure(); 这将在Eclipse控制台中输出我的日志 我想知道是否以及如何设置高于调试的级别阈值?换句话说,我不想显示调试级别的消息,只想显示ERR、WARN和INFO 多谢各位 编辑: 我可以用下面这个吗 import org.apache.log4j.Logger; import org.apache.log4j.Level; [...]
org.apache.log4j.BasicConfigurator.configure();
这将在Eclipse控制台中输出我的日志
我想知道是否以及如何设置高于调试的级别阈值?换句话说,我不想显示调试级别的消息,只想显示ERR、WARN和INFO
多谢各位
编辑:
我可以用下面这个吗
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
[...]
Logger logger = Logger.getLogger(this.class);
logger.setLevel(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>
您看到levelMin和LevelMax值了吗?levelMin是开始记录日志的地方,levelMax是停止记录日志的地方。(使用此特定的附加器)。你可以有几个附件
然后,将此追加器分配给类或包。你可以这样做:
<category name="com.foobar.automation.doremiResourceManager" additivity="true">
<appender-ref ref="DEBUG"/>
</category>
我认为最简单的方法是:
Logger.getRootLogger().setLevel(Level.INFO);
假设在调用任何记录器之前调用BasicConfigurator.configure(): 您可以使用以下任一配置文件进行更改,而无需重新编译: log4j.properties log4j.xml:
其中一个必须在命令行上。BasicConfigurator.configure()所做的是将根记录器添加到ConsolePender,并将appender布局设置为具有模式“%r[%t]-5p%c-%m%n”的PatternLayout。因此,您需要设置根记录器的级别。如果仅设置此类记录器的级别,则根记录器的级别保持不变,那么所有其他记录器(此类除外)仍可能使用根记录器的级别,因此您仍将看到不需要的日志
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
请参阅。如果未在属性文件内配置,请使用以下选项:
Logger root = Logger.getRootLogger();
root.setLevel(Level.INFO);
root.addAppender(new ConsoleAppender(
new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));
这就是重点:我不想让配置文件让我厌烦。此外,我知道log4j.properties配置文件,但不知道log4j.xml配置文件…Logger.setLevel(…)和Logger.getRootLogger().setLevel(…)之间有什么区别?通常每个类都有自己的Logger。这些伐木工人形成了一个等级制度。根记录器是此层次结构根目录下的特殊记录器。在根记录器上设置级别会影响所有记录器(如果未显式重写)。在类的记录器上设置级别只会影响类的日志语句。
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
Logger root = Logger.getRootLogger();
root.setLevel(Level.INFO);
root.addAppender(new ConsoleAppender(
new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));