Luhar,
不知道,如果你還在尋找這個答案,因爲我看到有人問相當長一段時間了。但我最近做了一些關於logback的工作,並偶然發現了這個沒有答案的問題。你試圖做的事情看起來非常簡單,所以我想我會試試看,看看發生了什麼。
使用以下logback配置和隨附的代碼,我能夠追加到日誌文件中。使用上面的配置
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<File>test.log</File>
<encoder>
<pattern>%d{yyyyMMdd-HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
%msg%n</pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="FILE" />
</appender>
<root level="INFO">
<appender-ref ref="ASYNC" />
</root>
</configuration>
簡單的Java類:
public class App {
static Logger logger = LoggerFactory.getLogger("SimpleTest");
public static void main(String[] args) {
logger.info("This is an INFO statement");
logger.warn("This is a WARN statement");
logger.error("This is an ERROR statement");
try {
Thread.sleep(2000);
// make sure the AsyncAppender queue is flushed
// before program exits
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
以下是該程序的運行3次後,我的日誌文件。
20141222-22:32:10.391 [主要] INFO SimpleTest的 - 這是一個INFO語句
20141222-22:32:10.393 [主要] WARN SimpleTest的 - 這是一個WARN語句
20141222-22:32:10.393 [主要] ERROR SimpleTest的 - 這是一個錯誤語句
20141222-22:32:18.558 [主要] INFO SimpleTest的 - 這是一個INFO語句
20141222-22:32:18.560 [主要] WARN SimpleTest的 - 這是一個WARN語句
20141222-22:32:18.560 [主要] ERROR SimpleTest的 - 這是一個錯誤語句
20141222- 22:32:23.192 [主要] INFO SimpleTest的 - 這是一個INFO語句
20141222-22:32:23.194 [主要] WARN SimpleTest的 - 這是一個WARN語句
20141222-22:32: 23.194 [主]錯誤SimpleTest - 這是一個錯誤語句
所以我認爲logback配置工作正常。希望這可以幫助!
這有幫助嗎? http://logback.qos.ch/apidocs/ch/qos/logback/core/rolling/RollingFileAppender.html – vikingsteve
感謝vikingsteve - 我不想實施基於時間或大小的滾動策略。只需附加到文件而不是在啓動時截斷並寫入文件。我沒有看到RollingFileAppender中的任何內容,我無需編寫自己的appender就可以使用它。 – Luhar