python日志记录根本不起作用

MYP*_*MYP 10 python logging

我想在我的小python项目中使用日志记录.在本教程之后,我将下面的代码添加到我的代码中,但是消息不会按原样记录到文件中.

import logging
logging.basicConfig(
    filename = "a.log",
    filemode="w",
    level = logging.DEBUG)
logging.error("Log initialization failed.")
Run Code Online (Sandbox Code Playgroud)

pwd中没有创建日志文件.(我已经使用以下代码打印出pwd,我确定我检查了正确的目录.)所以我手动创建了文件并运行了代码,但消息仍未记录.

print "argv: %r"%(sys.argv,)
print "dirname(argv[0]): %s"%os.path.abspath(os.path.expanduser(os.path.dirname(sys.argv[0])))
print "pwd: %s"%os.path.abspath(os.path.expanduser(os.path.curdir))
Run Code Online (Sandbox Code Playgroud)

有人知道我在这里做错了吗?提前致谢.

Mar*_*ers 22

你打电话basicConfig()至少两次; 第一次没有文件名.清除处理程序并再试一次:

logging.getLogger('').handlers = []

logging.basicConfig(
    filename = "a.log",
    filemode="w",
    level = logging.DEBUG)
Run Code Online (Sandbox Code Playgroud)

  • @andrew:我在`basicConfig`之前调用了`logging.info`,我认为它是无害的,所以我没有把它包含在上面的代码中.[Python logging HowTo] [1]已经明确地说明了这一点,但我错过了它:**对basicConfig()的调用应该在调用debug(),info()等之前进行.因为它的目的是 - 关闭简单的配置工具,只有第一个调用实际上会做任何事情:后续调用实际上是无操作.**[1]:http://docs.python.org/2/howto/logging.html (5认同)
  • 其他电话在哪里? (2认同)