我在 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 日志。
有人可以帮忙吗。
答案 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
中。