在Struts 2应用程序中,我们使用log4j进行日志记录。我只想记录警告,但当我尝试在log4j.properties中使用时
log4j.rootLogger=warn, stdout
它也打印错误和致命日志。我只想要警告日志。我在一些教程中阅读了日志的级别。所以我知道为什么错误和致命打印,因为它们的优先级低于警告。如何仅在我的控制台中打印警告日志?
我的 Java 代码:
import org.apache.log4j.Logger;
public class LogClass {
private static final org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
public static void main(String[] args) {
log.trace("Trace");
log.debug("Debug");
log.info("Info");
log.warn("Warn");
log.error("Error");
log.fatal("Fatal");
}
}
任何帮助都将不胜感激!
使用< code > org . Apache . log4j . varia . level range filter 过滤器。您的XML配置文件可以是:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
<appender name="warn-out" class="org.apache.log4j.FileAppender">
<param name="File" value="warn.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="warn" />
<param name="LevelMin" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="warn" />
<param name="LevelMin" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<root>
<level value="warn" />
<appender-ref ref="warn-out" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
有关更多选项,请转到此处。
看起来属性文件配置不支持过滤器。以下摘自log4j的官方wiki:
属性配置程序
不支持筛选器。
编辑:在XML中添加了控制台追加器,并关闭了log4j的调试。现在它应该同时转到文件和控制台。
问题内容: 我正在测试一种在出现问题时记录警告并返回null的方法。 就像是: 我想用junit测试在所有情况下都返回警告,除了返回null外(例如,未找到文件,文件是只读的)。 有任何想法吗? 谢谢,asaf :-) 更新 我对亚伦回答的实现(加上彼得的评论): 多谢你们, 问题答案: 在单元测试的设置中: 获取相同的记录器 使其非可加性 添加一个可记住列表中消息的附加程序: } 将追加器添加到
本文向大家介绍在Spring Boot中如何使用log4j记录日志,包括了在Spring Boot中如何使用log4j记录日志的使用技巧和注意事项,需要的朋友参考一下 前言 Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置
我尝试使用第二个日志文件与我的默认日志文件在servlet我有这个log4j.xml配置。 现在在servlet中,我将记录器设置为: 但在运行时:错误日志。调试(“启动应用程序”);我得到: log4j和log4j.xml在类路径我做错了什么?
我的记录器只记录根记录器ServerAppenderV2上的消息,日志文件是正确生成的,当我在root中使用change the level to debug时,我可以在root中定义的两个appender中看到日志,但在文件appenders FileAppender和perfappender中仍然没有日志。 对于以下代码: 下面是我的Logger类和标记: 下面是我的配置log4j2.xml:
我得到这个错误 这是我的主要任务 这是我的log.properties档案 这是我的文件结构。 我正处于Log4J的学习阶段,并试图实施一个虚拟项目来深入理解它。
我已经把我的log4j放好了。我的webapp的lib文件夹中的properties文件我还尝试在META-INF中输入如下内容: 这是我的log4j.properties.我得到以上警告和记录器是不写任何文件。我也创建了文件夹结构,如上所述。