如何创建按日期排列的芹菜日志文件?



我创建了django网站,在其中我正在使用芹菜服务进行任务调度。

目前的问题是每天芹菜日志文件增加,在3-4天内日志文件大小达到100 mb大小。

我已经创建了代码,以便芹菜服务应该能够按日期创建日志文件,但第二天芹菜将日志插入到相同的上一个日期文件中。

def SvcDoRun(self):
logging.info('Starting {name} service ...'.format(name=self._svc_name_))
os.chdir(INSTDIR) # so that proj worker can be found
logging.info('cwd: ' + os.getcwd())
self.ReportServiceStatus(win32service.SERVICE_RUNNING)
command = '"{celery_path}" -A {proj_dir} worker --pool=solo -f "{log_path}" -l info'.format(
celery_path=os.path.join(PYTHONSCRIPTPATH, 'celery.exe'),
proj_dir=PROJECTDIR,
log_path=os.path.join(INSTDIR,'celery_'+cur_date+'.log'))
logging.info('command: ' + command)
args = shlex.split(command)
proc = subprocess.Popen(args)
logging.info('pid: {pid}'.format(pid=proc.pid))
self.timeout = 3000
while True:
rc = win32event.WaitForSingleObject(self.hWaitStop, self.timeout)
if rc == win32event.WAIT_OBJECT_0:
# stop signal encountered
# terminate process 'proc'
PROCESS_TERMINATE = 1
handle = win32api.OpenProcess(PROCESS_TERMINATE, False, proc.pid)
win32api.TerminateProcess(handle, -1)
win32api.CloseHandle(handle)
break

请帮助克服上述问题,如果有人有更好的解决方案为每个日期创建单独的日志文件,请告诉我。

谢谢。

显而易见的解决方案是每天轮换日志,请考虑使用logrotate

最新更新