首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux命令行上过滤log4j2 SYSTEM_ERR目标日志

问在linux命令行上过滤log4j2 SYSTEM_ERR目标日志
EN

Stack Overflow用户
提问于 2021-07-27 06:42:08
回答 1查看 27关注 0票数 0

我在我的Java项目中使用log4j2,并希望在linux控制台上过滤错误日志。

log4j2配置如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Properties>
    <Property name="pattern">[%d{yyyy-MM-dd HH:mm:ss.SSS}][%highlight{%-5level}][%t][%logger] %msg%n</Property>
  </Properties>
  <Appenders>
    <Console name="stdout" target="SYSTEM_OUT"> <!-- 1 -->
      <PatternLayout pattern="${pattern}"/>
      <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT"/> <!-- 3 -->
    </Console>
    <Console name="stderr" target="SYSTEM_ERR"> <!-- 2 -->
      <PatternLayout pattern="${pattern}"/>
      <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <!-- 3 -->
    </Console>
  </Appenders>
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="stdout"/> <!-- 4 -->
      <AppenderRef ref="stderr"/> <!-- 4 -->
    </Root>
  </Loggers>
</Configuration>

(点击此处:https://rmannibucau.metawerx.net/log4j2-error-log-event-on-stderr.html)

当我通过命令行运行程序时

代码语言:javascript
复制
java -jar program.jar 2>&1 >/dev/null

在屏幕上显示stderr时,stdout被重定向到/dev/null。(好的)

奇怪的是,我的LOGGER.error("...")跟踪也被重定向到/dev/null (这意味着它是在linux stdout上登录的) (NOK),而在我的eclipse控制台上显示为红色(错误) (OK)。

我是不是遗漏了什么,或者为什么我的linux记录器没有记录到log4j2 stderr?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-27 07:01:00

我的logj42.xml没有包含在类路径中。这就是为什么所有日志消息的输出都会发送到linux的stdout。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68537044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档