2012-01-27 5 views
2

私は現在、アプリケーション用のログファイルの管理をねじってしまっていますが、ログは大きくなりつつあり、回転時に圧縮することを検討したいと思います。ローテーション後のDailyLogFileの圧縮方法

私はねじれた文書をすばやく見てきましたが、DailyLogFileクラスでこれをどうやって行うことができないのでしょうか。ロギング用

私のセットアップは次のとおりです。

from twisted.python.log import ILogObserver, FileLogObserver 
from twisted.python.logfile import DailyLogFile 
... 
"Setup the logging" 
logPath = os.getcwd() + "/logs/" 
logFile = DailyLogFile("lazarus.log", logPath, defaultMode=0644) 
application.setComponent(ILogObserver, FileLogObserver(logFile).emit) 

誰もがこれを行う方法を知っていますか?

答えて

1

あなたはDailyLogFileをサブクラス化し、rotate方法オーバーロードできます

class DailyCompressedLogFile(DailyLogFile): 
    def rotate(self): 
     super(DailyCompressedLogFile, self).rotate() 
     newpath = "%s.%s" % (self.path, self.suffix(self.lastDate)) 
     if os.path.exists(newpath): 
      # compress newpath here 
+2

も参照してください。この既存の実装、http://twistedmatrix.com/trac/ticket/727を –