feat(task): 新增自动清理超过七天的日志文件
This commit is contained in:
parent
044b1c2cc8
commit
c8a06eb2fe
|
@ -0,0 +1,34 @@
|
|||
import logging
|
||||
from pathlib import Path
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from kotonebot import task
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@task('清理日志')
|
||||
def clear_logs():
|
||||
"""清理 logs 目录下超过 7 天的日志文件"""
|
||||
log_dir = Path('logs')
|
||||
if not log_dir.exists():
|
||||
return
|
||||
|
||||
now = datetime.now()
|
||||
cutoff_date = now - timedelta(days=7)
|
||||
|
||||
logger.info('Clearing logs...')
|
||||
for file in log_dir.glob('*.log'):
|
||||
try:
|
||||
mtime = datetime.fromtimestamp(file.stat().st_mtime)
|
||||
if mtime < cutoff_date:
|
||||
file.unlink()
|
||||
logger.info(f'Removed file {file}.')
|
||||
except Exception as e:
|
||||
logger.error(f'Failed to remove {file}: {e}.')
|
||||
logger.info('Clearing logs done.')
|
||||
|
||||
if __name__ == '__main__':
|
||||
from kotonebot.backend.context import init_context, manual_context
|
||||
init_context()
|
||||
manual_context().begin()
|
||||
clear_logs()
|
Loading…
Reference in New Issue