我正在使用Django并且包含了Python的默认日志记录库。我有以下配置用于记录(在settings.py中):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format' : "[%(asctime)s %(name)s-%(levelname)s (%(filename)s:%(lineno)s %(funcName)s)]: %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
'simple': {
'format': '[%(asctime)s %(name)s-%(levelname)s]: %(message)s',
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'file-django': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(PROJECT_LOGS, 'django.log'),
'formatter': 'simple'
},
'file-application': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(PROJECT_LOGS, 'application.log'),
'formatter': 'simple'
},
'file-core': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(PROJECT_LOGS, 'core.log'),
'formatter': 'verbose'
},
},
'loggers': {
'django': {
'handlers':['file-django'],
'propagate': True,
'level':'DEBUG',
},
'application': {
'handlers': ['file-application'],
'propagate': True,
'level': 'DEBUG',
},
'core': {
'handlers': ['file-core'],
'propagate': True,
'level': 'DEBUG',
},
}
}
我正在尝试仅使用配置拆分结果日志文件。我“谷歌搜索”并找到了一些解决方案,但所有这些都是基于代码的。
答案 0 :(得分:2)
您可以在配置文件 setting.py 中使用 logging.handlers.RotatingFileHandler ,将处理程序'file-django'作为示例并假设您将其拆分为当文件大小超过100MB时的新文件:
'file-django': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(PROJECT_LOGS, 'django.log'),
'maxBytes': 104857600, # 1024*1024*100B (100MB)
'backupCount': 10, # keep at most 10 log files
'formatter': 'simple'
},
答案 1 :(得分:1)
使用Ignacio的评论和look up如何使用RotatingFileHandler
;它按文件大小分割,你可以通过LOGGING
字典在Django中以声明方式配置它。