【问题标题】:JBoss server.log output customizationJBoss server.log 输出自定义
【发布时间】:2012-07-22 12:53:03
【问题描述】:

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

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

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

我还想要输出一些可以识别此输出来自哪个部署的内容。

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

有人知道我该怎么做吗?

提前致谢

更新

我在网络http://java.dzone.com/articles/configuring-logging-jboss 上发现了这个关于配置 JBoss 的信息,但遗憾的是它适用于另一个版本。这里解释了如何让 log4j 为每个部署创建不同的日志文件。这将是我的终极解决方案。

【问题讨论】:

    标签: jakarta-ee jboss webserver jboss7.x


    【解决方案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 创建附加程序和类别过滤器

    问候

    【讨论】:

    • 只是补充一下,您也可以使用 JBoss Logging。这就是服务器使用的。
    • 我没有添加任何日志记录工具。它的默认值。是的,我有独立安装
    • 这些日志语句来自您的应用程序吗?
    • 是的,图中显示的是 System.out 和 .err 语句。但也有其他来自 JBoss 的信息,例如部署信息、身份验证失败等......
    • 非常感谢您的帮助。经过深思熟虑,我创建了自己的日志记录工具,我对结果非常满意。当我找到一些空闲时间时,我也会将其发布为答案。结果是这样的:11:35:29,907 INFO [stdout] (http--0.0.0.0-7001-16) [mywar, JavaMailClass]->连接到服务器,现在发送电子邮件:.....跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多