我想将每天restful api的调用记录到yyyy-mm-dd.log中。 在 settings.py 中我写:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
},
},
'handlers': {
'infofile': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': 'C://mydoc/logs/'+str(datetime.date.today())+'.log',
'formatter':'standard',
},
},
'loggers': {
'django': {
'handlers': ['infofile'],
'propagate': True,
},
},
如果服务器启动,例如在 2018 年 1 月 1 日,将创建“2018-01-01.log”并将所有日志写入该文件,即使调用是在 15.01,因为 settings.py 仅在服务器的 01.01 运行一次开始。
Django 如何每天创建一个新的日志文件并使用该文件?
最佳答案
这可以使用 TimedRotatingFileHandler 轻松实现
...
'handlers': {
'infofile': {
'level': 'INFO',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': 'yourlogbasename.log',
'when': 'D', # daily, you can use 'midnight' as well
'backupCount': 100, # 100 days backup
'formatter': 'verbose',
},
}
...
查看更多详细信息Django log to file by date or hour
或者,您可以使用外部工具来处理此问题,例如 logrotate请参阅此工具配置中的daily
选项以满足您的需求。
关于python - 如何在Python Django的设置中启用每日新的日志文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267901/