如何在轮转后压缩日志文件?
我现在用twisted来管理我的应用程序的日志文件轮换,但日志文件越来越大,我想在轮换时对它们进行压缩。
我快速浏览了一下twisted的文档,没找到如何使用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 个回答
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