我在 JBoss AS7 上运行一个应用程序。当我启动服务器时,来自 JBoss 的所有初始化日志都正确显示在输出视图中,但应用程序日志没有。我只有最后一行覆盖了前一行。
应用程序日志通过 logback 写入控制台:
<appender name="out" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}|%level|%thread|%logger{50}|%msg%n</Pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="out" />
</root>
这是 Standalone.xml 中的日志记录配置:
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
</console-handler>
<logger category="com.arjuna">
<level name="WARN"/>
</logger>
<logger category="org.apache.tomcat.util.modeler">
<level name="WARN"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<logger category="jacorb">
<level name="WARN"/>
</logger>
<logger category="jacorb.config">
<level name="ERROR"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
</handlers>
</root-logger>
</subsystem>
如果我将日志保存到文件中,我可以看到我所有的应用程序日志。我试图增加缓冲区,但没有奏效。相同的配置适用于 Eclipse。
例如,这就是我在 Intellij 输出中得到的:
... // logs from JBoss
deployed appli ... // logs from JBoss
log3 // logs from application (logback)
如果登录到文件中,同样的事情:
... // logs from JBoss
deployed appli ... // logs from JBoss
log1 // logs from application (logback)
log2 // logs from application (logback)
log3 // logs from application (logback)
log3 覆盖了 log1 和 log2。