Jakarta ee JBoss server.log输出自定义

Jakarta ee JBoss server.log输出自定义,jakarta-ee,jboss,webserver,jboss7.x,Jakarta Ee,Jboss,Webserver,Jboss7.x,我开发了一个servlet,它输出JBoss 7.1的server.log文件,以便于调试 我想做的是定制JBoss的输出,并显示每行输出是从哪个war生成的 为了更好地理解,这是一个示例输出: 我想要的也是输出一些东西,这些东西将标识这个输出来自哪个部署 在每个输出中的URL之后,我注意到7001端口后面的数字对于每个部署都是不同的,但不知道如何将其与war文件关联 有人知道我该怎么做吗 提前谢谢 更新 我在网上找到了关于配置JBoss的内容,但遗憾的是,这是针对另一个版本的。这里解释了如何

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

我想做的是定制JBoss的输出,并显示每行输出是从哪个war生成的

为了更好地理解,这是一个示例输出:

我想要的也是输出一些东西,这些东西将标识这个输出来自哪个部署

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

有人知道我该怎么做吗

提前谢谢

更新

我在网上找到了关于配置JBoss的内容,但遗憾的是,这是针对另一个版本的。这里解释了如何让log4j为每个部署创建不同的日志文件。这将是我的最终解决方案。

首先,从您的日志内容来看,您似乎正在使用System.out.println和System.err.println

如果您将日志切换到slf4j、log4j、commons日志,当然还有jboss日志(谢谢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 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创建附加器和类别筛选器

关于

首先,从日志内容来看,您似乎正在使用System.out.println和System.err.println

如果您将日志切换到slf4j、log4j、commons日志,当然还有jboss日志(谢谢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 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创建附加器和类别筛选器


关于

只需补充一下,您也可以使用JBoss日志。这就是服务器使用的。我没有添加任何日志记录功能。这是默认的。是的,我有独立安装。这些日志语句是来自您的应用程序吗?是的,pic中显示的是System.out和.err语句。但是JBoss也有其他的功能,比如部署信息、身份验证失败等等。非常感谢您的帮助。经过很多思考,我已经创建了自己的日志记录工具,我对结果非常满意。当我有空闲时间的时候,我也会把它作为一个答案贴出来。结果是这样的:11:35:29907 INFO[stdout](http--0.0.0.0-7001-16)[mywar,JavaMailClass]->连接到服务器,现在发送电子邮件:…..只需添加,您也可以使用JBoss日志记录。这就是服务器使用的。我没有添加任何日志记录功能。这是默认的。是的,我有独立安装。这些日志语句是来自您的应用程序吗?是的,pic中显示的是System.out和.err语句。但是JBoss也有其他的功能,比如部署信息、身份验证失败等等。非常感谢您的帮助。经过很多思考,我已经创建了自己的日志记录工具,我对结果非常满意。当我有空闲时间的时候,我也会把它作为一个答案贴出来。结果是这样的:11:35:29907信息[stdout](http--0.0.0.0-7001-16)[mywar,JavaMailClass]->连接到服务器,现在发送电子邮件:。。。。。