我刚刚开始在我的项目中尝试Django日志记录模块...
我正在遵循django文档,将Django默认日志配置中的所有日志记录到自定义日志文件中。 我将following code复制到了settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': '/project/debug.log',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
在这里,我假设所有控制台日志都必须写在debug.log
文件中,
但是它没有发生。
有人可以建议我这里有什么问题吗?还是有其他方法可以解决?
答案 0 :(得分:2)
您的问题出在文件名中,您需要将其设置为正确的路径!
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': os.path.join(BASE_DIR,'APPNAME.log'),
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
答案 1 :(得分:2)
替换为静态路由,不要忘记授予文件权限。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': '/home/user/proyect/debug.log,
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
答案 2 :(得分:0)
可能是因为您没有django
处理程序的日志。
用空字符串定义一个作为默认值:
...
'loggers': {
'': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
...
“ django”记录器仅在django中使用过一次-在库本身中。
创建记录器时,请给它起一个名称-通常是这样的:log = logging.getLogger(__name__)
-其中的名称是将在其中使用该模块的名称。
您可以指定和配置不同的模块,以不同的方式进行写/报告。