2013-11-20 61 views
1

我在我的項目中使用log4cplus進行日誌記錄。我創建了logger.conf,我將在我的應用程序開始時加載它。如何壓縮日誌文件?

這裏是我的logger.conf:

log4cplus.appender.Developer=log4cplus::RollingFileAppender 
log4cplus.appender.Developer.DatePattern = ".yyyy-MM-dd" 
log4cplus.appender.Developer.Schedule = HOURLY 
log4cplus.appender.Developer.File=log/developer.log 
log4cplus.appender.Developer.MaxFileSize=3MB 
log4cplus.appender.Developer.MaxBackupIndex=10 
log4cplus.appender.Developer.layout=log4cplus::PatternLayout 
log4cplus.appender.Developer.layout.ContextPrinting=enabled 
log4cplus.appender.Developer.layout.ConversionPattern=%D{%Y-%m-%d %H:%M:%S,%Q} [%t] %p - %m%n 
log4cplus.appender.Developer.Threshold=TRACE 
log4cplus.logger.DEVELOPER=TRACE, Developer 

我會載入我的配置文件在我的代碼是這樣的:

QString log_path = qApp->applicationDirPath() + "/log"; 
QDir().mkpath(log_path); 
PropertyConfigurator logger(L"configs/logger.conf", Logger::getDefaultHierarchy()); 
logger.configure(); 

正如你可以看到,每當我的日誌達到3MB,Log4Cplus做一個備份(developer.log.1到developer.log.10)。

我該如何告訴Log4Cplus壓縮它創建的備份(在我的配置文件中)?

回答

1

我不確定,但我不認爲你可以在配置文件中指定。一種方法是創建自己的appender,繼承自RollingFileAppender,然後在複製後添加壓縮步驟。

+0

我該怎麼做?!是否有可能我在配置文件中創建appender,或者它必須在代碼中? –

+0

你必須在代碼中這樣做。 – dutt