【问题标题】:How to solve - Console error log can not write in Log4j2 configured file如何解决 - 控制台错误日志无法写入 Log4j2 配置文件
【发布时间】:2020-02-07 10:44:40
【问题描述】:

我尝试使用 log4j2-test.xml 配置日志 我可以编写在代码 log.info() 和日志中记录的信息和错误日志。错误()。

但是,我无法在日志文件中写入运行时异常的控制台错误,例如空点异常、数字格式异常等。我正在使用 JBoss 服务器。控制台错误记录在 jboss 服务器日志中,但我需要登录 test-1.log 文件。

任何人都可以建议一种方法吗?

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="60">
  <Appenders>
    <Console name="console" target="SYSTEM_OUT">
      <PatternLayout>
        <Pattern>test-1.log</Pattern>
      </PatternLayout>
    </Console>
    <RollingFile name="TestDailyAppender">
      <FileName>/Test/test-1.log</FileName>
      <PatternLayout>
        <Pattern>test-1.log</Pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
      </Policies>
      <DefaultRolloverStrategy max="20"/>
    </RollingFile>
  </Appenders>
  <Loggers>
    <logger name="com" level="info">
      <AppenderRef ref="TestDailyAppender"/>
    </logger>
    <logger name="com" level="info">
      <AppenderRef ref="TestDailyAppender"/>
    </logger>
    <Logger name="org" level="info">
      <AppenderRef ref="console"/>
    </Logger>
    <Root>
      <AppenderRef ref="TestDailyAppender"/>
    </Root>
  </Loggers>
</Configuration>

【问题讨论】:

  • 您有控制台输出示例吗?它很可能被服务器创建的记录器包装。

标签: java spring-boot jboss log4j2


【解决方案1】:

您的应用程序是否部署为 WAR 文件?如果是这样,是否在所需文件夹中生成了 test-1.log 文件?

如果服务器启动时没有生成文件,请在项目中添加jboss-deployment-structure.xml file,以排除Log4j日志写入jboss服务器日志。

例子:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
</exclusions>
</deployment>
</jboss-deployment-structure>

此 xml 配置将排除 slf4j 日志并将创建 test-1.log 文件。希望这会有所帮助。谢谢

【讨论】:

    猜你喜欢
    • 2020-03-30
    • 2022-01-25
    • 1970-01-01
    • 2018-03-15
    • 2019-07-04
    • 1970-01-01
    • 2019-05-12
    • 2011-02-09
    • 2016-10-24
    相关资源
    最近更新 更多