如何将信息日志和错误日志记录到 WILD FLY 服务器中的不同文件中?

时间:2021-06-10 06:31:03

标签: java logging wildfly jbpm

我在 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>

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

有人可以帮忙吗。

1 个答案:

答案 0 :(得分: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 中。