【问题标题】:how to log info logs and error logs into different files in WILD FLY server?如何将信息日志和错误日志记录到 WILD FLY 服务器中的不同文件中?
【发布时间】:2021-08-27 03:36:15
【问题描述】:

我在standalone.xml 文件中做了如下修改:

 <periodic-rotating-file-handler name="MYLOG" autoflush="true" enabled="true">
    <level name="ERROR"/>
    <formatter>
        <named-formatter name="json"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="my_error.log"/>
    <suffix value=".yyyy-MM-dd"/>
    <append value="true"/>
</periodic-rotating-file-handler>
<logger category="com.abc.api" use-parent-handlers="false">
    <level name="ERROR"/>
    <handlers>
      <handler name="MYLOG"/>
    </handlers>
</logger>

但是这个处理程序在 com.abc.api 包的 my_error.log 中打印错误日志。我还想在 my_info.log 文件中打印 com.abc.api 包的 INFO 日志。

有人可以帮忙吗?

【问题讨论】:

  • 您希望 WARN 消息发生什么?你的my_info.log 文件看起来是不是类似配置?
  • 我们可以忽略 WARN 消息,我只想在单独的文件中打印 INFO 和 ERROR 消息。
  • 我尝试的是,创建了两个处理程序并将级别指定为信息和错误,然后执行以下操作: ,它的工作方式类似于错误文件中的错误消息打印以及信息文件中的信息消息,但此信息文件也打印错误消息。

标签: java logging wildfly jbpm


【解决方案1】:

您可以在处理程序上使用levels 过滤器来过滤您希望在处理程序中看到的日志消息。您可以使用以下 CLI 命令配置日志记录:

/subsystem=logging/periodic-rotating-file-handler=info-handler:add(named-formatter=json, file={relative-to=jboss.server.log.dir, path=info.log}, level=INFO, filter-spec=levels(INFO), suffix=".yyyy-MM-dd")
/subsystem=logging/periodic-rotating-file-handler=error-handler:add(named-formatter=json, file={relative-to=jboss.server.log.dir, path=error.log}, level=ERROR, suffix=".yyyy-MM-dd")
/subsystem=logging/logger=com.abc.api:add(handlers=[info-handler, error-handler])

注意我没有添加use-parent-handlers=false。这允许消息仍然记录到server.log,以备不时之需。

【讨论】:

  • 通过添加过滤器规范,这就像一个魅力。谢谢。最后一件事,有什么方法可以在一个月结束后实现此日志的存档。意思是日志文件应该被删除新月份开始后的特定存档文件夹。
  • 不幸的是,日志管理器本身目前不支持。如果您使用的是基于 Linux 的系统,则可以使用 cron 作业来执行此操作。
  • 不幸的是我没有。我对 JBPM 一无所知。
猜你喜欢
  • 1970-01-01
  • 2018-06-01
  • 2013-06-10
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多