我在 django/python 中使用的日志记录工具有一个非常奇怪的问题。自从我升级到 django 1.3 后,日志记录不再起作用。它似乎与 settings.py 文件中的日志记录级别和 'debug=' 设置有关。
1) 当我记录 INFO 消息并且 debug=False 时,日志不会发生,我的文件不会被附加。2) 当我记录 WARNING 消息和 debug=False 时,日志记录完全按照我的意愿工作,文件被附加 3) 当我记录 INFO 消息和 debug=True 时,日志记录似乎工作,文件被附加。
我如何使用 debug=False 记录 INFO 消息?它在 django 1.3 之前工作......是否有一个神秘的设置可以解决问题?下面有一个示例代码:
视图.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 正在完成它们的工作......
有人有想法吗?