【发布时间】:2011-09-16 02:40:36
【问题描述】:
我在 django/python 中使用的日志记录工具有一个非常奇怪的问题。自从我升级到 django 1.3 后,日志记录不再起作用。它似乎与 settings.py 文件中的日志记录级别和 'debug=' 设置有关。
1) 当我记录 INFO 消息并且 debug=False 时,记录不会发生,我的文件不会被附加。 2)当我记录警告消息和调试 = False 时,日志记录工作完全像我想要的那样,文件被附加 3) 当我记录 INFO 消息并且 debug=True 时,记录似乎工作,文件被附加。
如何使用 debug=False 记录 INFO 消息?它在 django 1.3 之前工作......是否有一个神秘的设置可以解决问题?下面有一个示例代码:
views.py:
import logging
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(levelname)s %(message)s',
filename='/opt/general.log',
filemode='a')
def create_log_file(filename, log_name, level=logging.INFO):
handler = logging.handlers.TimedRotatingFileHandler(filename, 'midnight', 7, backupCount=10)
handler.setLevel(level)
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s', '%a, %Y-%m-%d %H:%M:%S')
handler.setFormatter(formatter)
logging.getLogger(log_name).addHandler(handler)
create_log_file('/opt/test.log', 'testlog')
logger_test = logging.getLogger('testlog')
logger_test.info('testing the logging functionality')
使用此代码,在 settings.py 文件中的调试设置为 False 的 Django 1.3 中,日志记录不起作用。当我应该这样做时:
logger_test.warning('testing the logging functionality')
当 debug 设置为 False 时,这非常有效。 DEBUG 和 INFO 级别不是日志记录,但 WARNING、ERROR 和 CRITICAL 正在发挥作用...
有人有想法吗?
【问题讨论】:
-
在使用更高的严重性时是否有效?
-
是的,就像我说的,例如,当我使用警告或错误时它确实有效,但我希望某些消息的 INFO 工作......我不明白了......
-
看,只有 INFO 缺失:Thu, 2011-06-16 08:45:03 test WARNING test warning Thu, 2011-06-16 08:45:03 test ERROR test error Thu, 2011-06-16 08:45:03 测试关键测试关键
标签: python django logging django-views django-settings