gpt4 book ai didi

java - Jboss 7 AS - 结合standalone.xml 日志配置和每个部署日志配置

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:24 24 4
gpt4 key购买 nike

我正在使用 JBoss 7 AS,我在这个 JBoss 中部署了很少的耳朵。standalone.xml 已配置以下日志记录配置

<subsystem xmlns="urn:jboss:domain:logging:3.0">
.
.
.
.
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%K{level}%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
</console-handler>
.
.
.
.
<size-rotating-file-handler autoflush="true" name="MAINLOGFILE">
<formatter>
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file path="mainlog.log" relative-to="jboss.server.log.dir"/>
<append value="true"/>
<rotate-size value="1m"/>
<max-backup-index value="1000"/>
</size-rotating-file-handler>

然后我尝试将logging.properties文件添加到一只耳朵的META-INF中,它按预期工作。我再次想从该logging.properties文件(我已将其放入ear之一的META-INF中)引用处理程序(在stanalone.xml中定义的MAINLOGFILE)。这是logging.properties 的样子:

loggers=my.testpackage

logger.my.testpackage.level=INFO
logger.my.testpackage.handlers=EXTFILE,MAINLOGFILE
logger.my.testpackage.useParentHandlers=true

handler.EXTFILE=org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
handler.EXTFILE.level=ALL
handler.EXTFILE.formatter=PATTERN
handler.EXTFILE.properties=autoFlush,append,fileName,suffix
handler.EXTFILE.constructorProperties=fileName,append
handler.EXTFILE.autoFlush=true
handler.EXTFILE.append=true
handler.EXTFILE.fileName=${jboss.server.log.dir}/mytest.log
handler.EXTFILE.suffix=.yyyy-MM-dd

formatter.COLOR-PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.COLOR-PATTERN.properties=pattern
formatter.COLOR-PATTERN.pattern=%K{level}%d{HH\:mm\:ss,SSS} %-5p [%c] (%t) %s%E%n

formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.PATTERN.properties=pattern
formatter.PATTERN.pattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} %-5p [%c] (%t) %s%E%n

但是登录到 EXTFILE 的条目不会登录到 MAINLOGFILE。我的期望是登录到 EXTFILE 的每个条目也应该在 MAINLOGFILE 中可见

请帮助我找到一种方法,从每个部署 loggign.properties 文件中引用在standalone.xml 中定义的日志处理程序。

谢谢。

最佳答案

您真的需要应用程序中的日志记录配置吗?您可以轻松地在 jboss 日志记录子系统中定义记录器处理程序,这些处理程序针对部署的应用程序中的特定包甚至类:

<!-- all classes in `my.testpackage` package should only print INFO and up into mainlog.-->
<logger category="my.testpackage" use-parent-handlers="true">
<level name="INFO"/>
<handlers>
<handler name="MAINLOGFILE"/>
</handlers>
</logger>
<!-- This class should print DEBUG and up into mainlog.-->
<logger category="my.testpackage.SuperImportantClass" use-parent-handlers="true">
<level name="DEBUG"/>
<handlers>
<handler name="MAINLOGFILE"/>
</handlers>
</logger>

优点:可以通过 cli or web admin interface 轻松添加此配置JBoss 的一个很大的好处是,您可以在运行时更改它,而无需重新启动服务器或您的 Web 应用程序。如果需要,您可以将配置作为分发过程的一部分,例如使用 jboss、应用程序部署和 cli/config 创建您自己的 docker 镜像。

关于java - Jboss 7 AS - 结合standalone.xml 日志配置和每个部署日志配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44427903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com