JBoss server.log输出定制

时间:2012-07-24 08:21:52

标签: java-ee jboss webserver jboss7.x

我开发了一个servlet,它输出JBoss 7.1的server.log文件,以便于调试。

我想要做的是自定义JBoss的输出,并显示生成每行输出的war。

为了更好地理解这是现在的示例输出:

server log as a servlet

我想要的是输出一些东西来识别这个输出来自哪个部署。

在每个输出中的URL之后,我注意到7001端口之后的数字对于每个部署是不同的,但不知道如何将其与war文件相关联....

任何人都知道我该怎么做?

提前致谢

更新

我在网上发现了http://java.dzone.com/articles/configuring-logging-jboss关于配置JBoss的问题,但遗憾的是还有另一个版本。这里解释了如何让log4j为每个部署创建不同的日志文件。这对我来说是最终的解决方案。

1 个答案:

答案 0 :(得分:1)

首先,您(使用日志的内容)似乎正在使用System.out.println和System.err.println。

如果您将日志切换到slf4j,log4j,commons-logging以及jboss-logging(谢谢James)将能够看到您正在登录的软件包。

使用正确的日志记录工具后,您可以通过编辑配置文件按类别进行过滤。

此外,日志记录将显示更可读,即:

05:21:42,272 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)

我假设你在$ JBOSS_HOME / standalone / configuration / standalone.xml中使用独立配置

您需要找到记录子系统

    <subsystem xmlns="urn:jboss:domain:logging:1.1">

并创建一个类型为periodic-rotating-file-handler的新appender:

        <periodic-rotating-file-handler name="APPLOG1">
            <formatter>
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="applog1.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>

然后添加过滤器:

         <logger category="com.yourapppackage">
            <level name="INFO"/>
            <handler name="APPLOG1"/>
        </logger>

那应该做的工作。

如果我没弄错,你也可以从管理控制台和CLI创建appender和类别过滤器

此致