如何仅在 log4j 中记录警告

2024-04-02

在 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");
    }
}

任何帮助将不胜感激!


Use the org.apache.log4j.varia.LevelRangeFilter https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/varia/LevelRangeFilter.html筛选。您的 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>

如需更多选择,请前往here http://wiki.apache.org/logging-log4j/LogToAppenderByLevel.

看起来属性文件配置不支持过滤器。以下内容摘自log4j的官方wiki:

过滤器不支持PropertiesConfigurator http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html.

EDIT:向 XML 中添加了控制台附加程序,并关闭了 log4j 的调试。现在它应该转到文件和控制台。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅在 log4j 中记录警告 的相关文章

  • 使用 Java 编程式 HTML 文档生成

    有谁知道如何在 Java 中以编程方式生成 HTMLDocument 对象 而不需要在外部生成字符串 然后使用 HTMLEditorKit read 来解析它 我问的两个原因 首先 我的 HTML 生成例程需要非常快 并且我认为将字符串解析
  • 有效地查找正则表达式的所有重叠匹配项

    这是后续与 java 正则表达式匹配的所有重叠子字符串 https stackoverflow com q 11303309 244526 有没有办法让这段代码更快 public static void allMatches String
  • JUnit 使用 Mockito 测试异步方法

    我已经使用 Spring Framework 版本 5 0 5 RELEASE 在 Java 1 8 类中实现了异步方法 public class ClassToBeTested Autowired private MyComponent
  • @PreUpdate 不适用于 Spring Data JPA

    我有一个实体 Entity EntityListeners MyEntityListener class class MyEntity 还有听者 class MyEntityListener PrePersist PreUpdate pub
  • 删除 servlet 中的 cookie 时出现问题

    我尝试使用以下代码删除 servlet 中的 cookie Cookie minIdCookie null for Cookie c req getCookies if c getName equals iPlanetDirectoryPr
  • 如何在 OpenAPI 3.0 中定义字节数组

    我正在将 API 从 Swagger 2 0 迁移到 OpenAPI 3 0 在 DTO 中 我有一个指定为字节数组的字段 Swagger 对 DTO 的定义 Job type object properties body type str
  • firestore快照监听器生命周期和定价之间有什么关系?

    在我的活动中 我有一个字符串列表 这些字符串表示我想要附加快照侦听器的 Firestore 文档 我使用 Acivity ModelView 存储库结构 在活动的 onCreate 中 我向 ViewModelProvider 询问适当的
  • 会话 bean 中的 EntityManager 异常处理

    我有一个托管无状态会话 bean 其中注入了 EntityManager em 我想做的是拥有一个具有唯一列的数据库表 然后我运行一些尝试插入实体的算法 但是 如果实体存在 它将更新它或跳过它 我想要这样的东西 try em persist
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 在 Spring Boot application.properties 中指定信任存储信息

    我在用springBoot版本1 2 0 RELEASE 我正在尝试通过配置我的密钥库和信任库application properties 当我添加以下设置时 我可以使密钥库正常工作 但不能使信任库正常工作 server ssl key s
  • Java G1 GC 处理引用对象运行缓慢

    我已经在 J ava 上运行了计数器 它24小时工作 每秒点击通过100次左右 白天 GC 处理时间从 20 60 毫秒缓慢上升到 10000 60000 毫秒 然后下降到 20 60 毫秒 这种模式不时地重复 从 GC 日志中我发现 GC
  • Java String.format 向整数添加空格

    我有一小段代码 我不明白输出 此输出向我的字符串格式文本添加空格 我做错了什么吗 public class HelloWorld public static void main String args int a1 540 int a2 4
  • 源服务器未找到目标资源的当前表示或不愿意透露该表示存在

    web xml
  • 当容器大小更改时,JTable 仅调整选定列的大小

    对于面板内的 JTable 如果面板变大 我如何将额外的空间仅分配给某些列 在我的例子中 分配给最后一列 尽管提供 第 3 4 列和8 将获得额外的空间 我想允许用户手动更改所有列的列大小 我尝试了 table setAutoResizeM
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • RMI 服务器:rmiregistry 或 LocateRegistry.createRegistry

    对于服务器端的RMI 我们需要启动吗rmiregistry程序 或者只是调用LocateRegistry createRegistry 如果两者都可以的话 各有什么优点和缺点 他们是同一件事 rmiregistry是一个单独的程序 您可以从
  • Mule/码头设置

    我有一个正在运行的 Mule 应用程序 我想在其上设置 Jetty 来响应 http 请求 以下配置
  • Scala repl 抛出错误

    当我打字时scala在终端上启动 repl 它会抛出此错误 scala gt init error error while loading AnnotatedElement class file usr lib jvm java 8 ora
  • Java的hashCode可以为不同的字符串产生相同的值吗?

    使用java的哈希码函数是否可以为不同的字符串提供相同的哈希码 或者如果可能的话 其可能性的 是多少 Java 哈希码是 32 位 它散列的可能字符串的数量是无限的 所以是的 会发生冲突 百分比是没有意义的 项目 字符串 的数量是无限的 而
  • 如何使用 Spring AOP 建议静态方法?

    在执行类的静态方法之前和之后需要完成一些日志记录 我尝试使用 Spring AOP 来实现这一点 但它不起作用 而对于正常方法来说它起作用 请帮助我理解如何实现这一点 如果可以使用注释来完成 那就太好了 也许您应该在使用 Spring AO

随机推荐

  • 泛型友好的类型处理程序映射

    我正在尝试创建一个返回特定类型的处理程序的 注册表 public class HandlerRegistry Map
  • XDocument 和 BOM(字节顺序标记)的问题

    有没有办法输出没有BOM的XDocument的内容 当使用Flash读取输出时 会导致错误 如果您使用 XmlWriter 编写 XML 则可以将编码设置为已初始化的编码以省略 BOM EG System Text UTF8Encoding
  • 具有基本身份验证的 Solr Cloud 失败 - Solr 管理员未经授权的 401 错误

    我已经使用 Solr 6 6 0 和 Zookeeper 3 4 10 设置了 SolrCloud 我正在尝试根据最新文档设置基本身份验证https cwiki apache org confluence display solr Basi
  • C# ANTLR 语法?

    我正在寻找交钥匙ANTLR http www antlr org C 语法 生成可用的抽象语法树 AST 并且与后端语言无关或以 C C C 或 D 为目标 它不需要支持错误报告 附 我不愿意做任何修复 因为替代方案并不难 这可能太晚了 但
  • FileProvider:安装 APK。解析包时出错。

    我在 storage emulated 0 Download app debug apk 中有一个 APK 文件 我想通过 FileProvider 安装这个文件 因为我使用的是 Android N 当我尝试启动意图 logcat 时 没有
  • 禁用 Android 12 默认启动屏幕

    在 Google I O 演示中 Google 团队表示我们可以禁用默认的启动屏幕 我想这样做 但我找不到方法 有人能够实现这一目标吗 稍后编辑 我误解了视频中演讲者所说的内容 看来您只能编辑默认的启动屏幕 而不能禁用它 你可以添加这一行
  • 有没有适合新手的 Solr 教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Angularjs $http.get 不起作用

    我的目的是使用 AngularJS 中的 REST Web 服务 我现在正在进行一些试验 下面的代码不起作用并抛出以下异常 你能帮我找出问题所在吗 提前致谢 function getUsersFromLocal scope http htt
  • 我可以在 2.1 上编译 Android 应用程序并支持 1.5 及以上的所有版本吗?

    我希望我的 Android 应用程序具有最大的覆盖范围 因此希望支持 V1 5 及以上的所有版本 我发现 V1 5 中缺少的一些功能在 V2 0 或 V2 1 中可用 我可以在 V2 1 上编译 然后设置 minSDK 以使应用程序在 1
  • Django:如何在可重用应用程序中处理导入

    我刚刚开始使用 django 我不太清楚 我应该如何编写一个可以稍后重用的应用程序 在我阅读的每个教程中 我都会看到相同的代码 view py from project app models import MyModel 因此 如果我将应用
  • Windows服务之间如何通信

    我有 2 个使用 C 创建的 Windows 服务 我希望其中一个服务调用第二个 Windows 服务中的函数 我该怎么做呢 EDIT 问题是我必须运行该应用程序 我不需要它们 相反服务进程也很好 但我need这2个应用程序进行通信 这2个
  • 获取 $http 调用的完整调用堆栈跟踪

    假设有人在名为的文件中编写了这样的方法app js尝试对不存在的 url 执行 XHR 请求 app controller MainCtrl function scope http scope send function http get
  • 如何从 Android 中的 Fragment 调用 ArrayAdapter 构造函数

    我正在尝试将两列 ListView 添加到我的 Android 应用程序中 当我创建项目时 我选择了选项 片段 它通过向左和向右滑动来创建漂亮的导航 所以我的MainActivity延伸FragmentActivity 我的问题是 当我尝试
  • 找不到绳线(-bash:绳线:找不到命令)

    我正在尝试使用 twine 在 pypi 上发布我的第一个 python 包 当然会首先添加 test pypi 我遵循了官方指南https packaging python org tutorials packaging projects
  • Freemarker:从模板文件 (*.ftl) 调用静态 util 方法

    在 Freemarker FTL 文件中 我想调用StringUtils capatilize myString 例如 p You selected selectionString p p StringUtils capatilize se
  • 绘制圆形渐变

    我想绘制一个圆形渐变 如下图所示 我可以轻松管理径向渐变 但我不知道如何做圆形渐变 我正在考虑在一条线上绘制渐变 然后将其转换为圆形 这可能吗 这就是我绘制径向渐变的方法 CGFloat a MIN self frame size widt
  • 使用 codeigniter 403 的 Ajax 请求(禁止)

    我正在尝试使用 Ajax 向 Codeigniter 中的控制器文件发送一个值 但没有成功 我已经搜索过这个问题 现在这个问题在这里被提出了很多次 但仍然找不到解决方案 希望任何人都可以帮助我 谢谢 Js file function sub
  • 在堆栈上为 execve 创建一个 arg 数组

    我想编写一个汇编程序 通过 EXECVE 系统调用 0x3C 使用开关 al 执行程序 bin ls 手册页 man 2 execve 指出该调用需要三个值 int execve const char filename char const
  • 通过 http 拉取大型存储库(大小超过 1GB)失败

    存储库的大小超过 1GB 当我拉到 50 时 出现错误 gt remote Counting objects 23891 done remote Compressing objects gt 100 19980 19980 done fat
  • 如何仅在 log4j 中记录警告

    在 Struts 2 应用程序中 我们使用 log4j 进行日志记录 我只想记录警告 但是当我尝试在 log4j properties 中使用时 log4j rootLogger warn stdout 它也打印错误和致命日志 我只想要警告