我正在使用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文件中引用一个处理程序(stanalone.xml中定义的MAINLOGFILE)(我将其放入了一个耳朵的META-INF)。 这是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中定义的日志处理程序。
谢谢。
答案 0 :(得分:0)
您真的需要在应用中使用日志配置吗?您可以在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>
优点:您可以通过JBoss的cli or web admin interface轻松添加此配置,作为一个很好的奖励,您可以在运行时更改它,而无需重新启动服务器或您的webapp。如果需要,您可以将配置部分作为分发流程的一部分,例如使用jboss创建自己的docker镜像,使用您的app部署和cli / config。