当前位置: 首页 > 知识库问答 >
问题:

Jboss 7作为--将标准的.xml日志记录配置和每个部署日志记录配置结合起来

胡越
2023-03-14

我使用的是JBoss7,因为我在这个JBoss中部署的ear很少。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文件添加到一个ear 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中定义的日志处理程序。

谢谢你。

共有1个答案

万俟小林
2023-03-14

您真的需要应用程序中的日志配置吗?您可以轻松地在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或JBoss的web管理界面轻松地添加该配置,另外,您还可以在运行时更改该配置,而无需重新启动服务器或WebApp。如果需要,您可以将配置作为分发过程的一部分,例如使用jboss、应用程序部署和cli/config创建自己的docker映像。

 类似资料:
  • 每当我部署一个外部化配置有错误的生产应用程序时,我都会在Tomcat日志中收到以下消息: 显然,外部化的配置是在log4j被正确初始化之前处理的,因此没有附加程序可以接受来自的消息。 有没有办法预先初始化log4j,以便在标准Grails log4j初始化发生之前捕获这些消息?

  • 目前,我正在与 log4j2.7 springframework 4.3。5; 冬眠5.2。三, 我通过一个xml文件配置log4j 为此,我创建了一些appender,其中一个名为“General”。我需要的是,所有日志都必须转到该appender(包括springframework或hibernate生成的日志),并且后者都不会打印在控制台上(我仍然需要其他类中的其他日志) 我试着写这些日志:

  • 我有一个简单的spring boot应用程序打包为。能够部署到外部Tomcat容器的war文件。我有一个日志。但是,当部署到Tomcat时,日志不会写入文件。

  • 问题内容: 如何配置OpenEJB日志记录格式?这就是我现在在日志中看到的内容: 我想禁用消息,并更改其他消息的格式。中的更改无效。 问题答案: 这是我为使事情正常运行所做的工作: 现在工作正常。这是我的: 这是: 现在,由于大卫的支持,我可以在测试期间微调OpenEJB的日志记录:)

  • 我想按照这里的描述设置用于日志记录的Jetty-http://www.eclipse.org/jetty/documentation/current/configuring-jetty-request-logs.html 但上线过程以错误结束: 我的码头网。WEB-INF中的xml具有以下配置: 我做错了什么? 我用下一个命令编译并运行WAR文件:

  • 我有以下情况:一个使用日志的Spring启动应用程序,以及已经在应用程序中配置的几个日志记录属性 我想添加其他只能通过文件可用的配置选项,但是一旦我将此文件添加到类路径(无论它被命名为还是),它就会覆盖中的所有内容,并且所有日志记录级别/模式以及那里定义的其他选项都不再有效 - 似乎在添加的所有选项 被忽略,我需要在xml文件中重新添加它们而不是yml。 我的问题是:是否可以合并这两个配置?我的意