在JBoss运行时访问JBoss4 log4j文件

在JBoss运行时访问JBoss4 log4j文件,jboss,log4j,Jboss,Log4j,我正在运行JBoss4.0.5.GA,并且——我想——它包含了log4j包,这两个包都在OSX Mountain Lion上。我已将。/server/site/conf/log4j.xml配置为在单独的文件中捕获启动/关闭消息: <appender name="SERVER_EVENTS" class="org.jboss.logging.appender.RollingFileAppender"> <errorHandler class="org.jboss.logg

我正在运行JBoss4.0.5.GA,并且——我想——它包含了log4j包,这两个包都在OSX Mountain Lion上。我已将
。/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\u events.log
文件的更改。我已验证LaunchAgent是否已加载,并且是否正常工作

LaunchAgent在以下时间响应:

  • run.sh
    启动并且
    server\u events.log
    文件被截断时
  • 在服务器关闭时,当一组日志条目以“关闭完成”结束时
我遇到的问题是捕获“开始于…”消息。在谷歌搜索了很多次之后,我知道了问题所在,我甚至不确定是否存在解决方案。我相信这条消息不会被捕获,因为JBoss在文件运行时会“保留”该文件。您可以在上面看到,我明确要求JBoss“立即刷新”消息。我的印象是,这是默认的,但我可以在Finder中看到文件是0字节,但看到文件在Sublime Text 2中打开会显示启动消息


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

immediateflush当然不是默认版本,而且通常也不推荐使用。您需要它有什么原因吗?如果我捕获的消息需要存在于文件中,则需要立即将更改写入日志文件中的磁盘,以便我可以对日志文件进行grep。