配置python logger在它无法写入文件时抛出异常

时间:2014-08-26 05:36:39

标签: python debugging python-2.7 logging

我试图使用python的logging类,并遇到一个问题,即没有任何内容写入日志文件。 According to the python documentation,一般规则是,在执行时,班级不会告诉您有关问题的信息:

  

"日志包旨在吞掉发生的异常   登录生产时#34;

但我有兴趣了解logging遇到的任何问题。该文档接着提到你可以设置一个模块级变量,raiseExceptions可以看到更多的详细程度。

我的问题是,如何设置和/或是否有更直接的方法来调试此类问题?

供参考,这是我对logging(python 2.7)的实现:

numeric_log_level = getattr(logging, args.loglevel.upper(), None)
if not isinstance(numeric_log_level, int):
     raise ValueError('Invalid log level: %s' % args.loglevel)
logging.basicConfig\
    (filename=args.logfile, level=numeric_log_level, format="%(asctime)s - [client] - %(levelname)s - %(message)s")

1 个答案:

答案 0 :(得分:1)

您链接的文档继续提及它已经启用:

  

raiseExceptions的默认值为True。

默认情况下,错误配置日志记录的基本异常将打印stderr。因此,如果您想查看任何这些问题,请在终端中运行应用程序的输出。

如果您将其作为服务或守护程序运行,请确保将stderr指向文件。有很多不同的方法可以执行此操作,具体取决于您如何守护脚本,但一种常见的方法是

python script.py 2> /path/to/log_exceptions