2013-02-11 137 views
1

我有兩個上下文運行在相同的JVM和Tomcat實例中,我想使用logback RollingFileAppender寫入相同的日誌文件。如果我使用同一個文件,Logback RollingFileAppender是否同步以防止出現任何問題?我擔心滾動的文件無法正常工作,以及一些日誌被覆蓋。多個RollingFileAppenders寫入同一個文件

logback文檔mention a prudent mode,但這表示性能受到影響,僅指從不同的JVM登錄到同一文件。我將在同一個JVM中運行。

這是我的logback.xml的一個例子。我希望在每個上下文中有兩個單獨的WAR文件:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${catalina.base}/logs/portal.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
    <fileNamePattern>portal.%d.log</fileNamePattern> 
    <maxHistory>30</maxHistory> 
    </rollingPolicy> 
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
     <maxFileSize>100MB</maxFileSize> 
     </triggeringPolicy> 
     <encoder> 
     <pattern>%d [%t] %-5p %c - %m%n</pattern> 
     </encoder> 
    </appender> 

    <root level="INFO"> 
    <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

回答

1
+0

這是真的。我想知道是否有人以這種方式使用了RollingFileAppender,或者如果有記錄,我可能只是沒有看到。 – acvcu 2013-02-11 17:02:15

0

我以這種方式使用RollingFileAppender,並且面臨與您相同的問題。只有在您從配置中刪除<file>元素時,它纔會起作用。但是,所有文件都被命名爲例如portal.2013-12-03.log等。如果你能忍受這一點,那麼你就去。

不過,我需要一個像portal.log這樣的恆定文件名作爲活動日誌,因爲這些日誌文件上運行着一些監視。但我還沒有發現如何可能。我猜Windows也在這裏造成一些麻煩......