python - 如何在Python Django的设置中启用每日新的日志文件名?

标签 python django logging settings

我想将每天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/

相关文章:

python - 如何使用 django 在多模型中进行搜索

python - snmp 响应程序安装错误 : ERROR: Could not find a version that satisfies the requirement pysnmp>=5. 0.0(来自 snmpresponder)

python - 导入错误: No module named PyMySQL - issues connecting with Anaconda

python - 使用不显示 object1 的 forms.ModelChoiceField 进行查询选择

python - Django - 类型错误 : _clone() takes exactly 1 argument (3 given)

java - 记录器在类(class)中的位置应该是什么?

python - 找到具有属性的许多节点之一的最短路径

java - 记录复杂性和对 MessageFormat 性能的关注

android - 使用哪个 Android 日志框架?

python - 扁平化 Django South 迁移?