0

我正在运行 JBoss 4.0.5.GA 并且——我假设——它包含在 OS X Mountain Lion 上的 log4j 包。我已配置../server/site/conf/log4j.xml为在单独的文件中捕获启动/关闭消息:

<appender name="SERVER_EVENTS" class="org.jboss.logging.appender.RollingFileAppender">
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
    <param name="File" value="${jboss.server.log.dir}/server_events.log"/>
    <param name="Append" value="false"/>
    <param name="ImmediateFlush" value="true"/>
    <param name="MaxFileSize" value="500KB"/>
    <param name="MaxBackupIndex" value="1"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
     </layout>
</appender>

<category name="org.jboss.system.server.Server">
    <priority value="INFO" />
    <appender-ref ref="SERVER_EVENTS"/>
</category>

这适用于捕获启动/关闭线。我正在使用 LaunchAgent 来监视该server_events.log文件的更改。我已验证 LaunchAgent 已加载并且可以正常工作。

LaunchAgent 在以下时间响应:

  • run.sh开始并且server_events.log文件被截断时。
  • 在服务器关闭时,当一组日志条目以“关闭完成”结尾时。

我遇到的问题是捕获“开始于...”消息。经过多次谷歌搜索,我知道问题出在哪里,我不确定是否存在解决方案。我相信消息没有被捕获,因为 JBoss 在运行时对文件有“保留”。您可以在上面看到我明确要求 JBoss "ImmediateFlush" 消息的位置。我的印象是这是默认设置,但我可以在 Finder 中看到该文件为 0 字节,但查看在 Sublime Text 2 中打开的文件会显示启动消息。

有什么方法可以确保启动消息在发送后立即写入磁盘?还是因为我运行的是这么旧版本的 JBoss,所以我运气不好?

4

0 回答 0