相关疑难解决方法(0)

python日志处理程序中setLevel的重点是什么?

假设我有以下代码:

import logging
import logging.handlers

a = logging.getLogger('myapp')
h = logging.handlers.RotatingFileHandler('foo.log')
h.setLevel(logging.DEBUG)
a.addHandler(h)

# The effective log level is still logging.WARN
print a.getEffectiveLevel() 
a.debug('foo message')
a.warn('warning message')
Run Code Online (Sandbox Code Playgroud)

我希望logging.DEBUG处理程序上的设置会导致调试级别的消息写入日志文件.但是,这将打印30作为有效级别(等于logging.WARNING,默认值),并仅将warn消息记录到日志文件,而不是调试消息.

似乎处理程序的日志级别被丢弃在地板上,例如它被默默地忽略.这让我想知道,为什么要setLevel处理器呢?

python logging

52
推荐指数
4
解决办法
2万
查看次数

在PyCharm中进行单元测试时如何查看日志消息?

我确定这是一个简单的修复,但我想在运行单元测试时在PyCharm控制台中查看日志消息.我正在测试的模块有自己的记录器,通常我会设置一个根记录器来捕获某个级别的调试消息,并将其他日志传递给一个文件.但我无法弄清楚它如何与单元测试一起工作.

我正在使用unittest2模块,并使用PyCharm的自动测试发现(可能是基于鼻子,但我不知道).

我试过愚弄运行配置,但似乎没有一种简单的方法来做到这一点.

如果你们中的任何人在那里工作,那么PyCharm文档在这里也没有特别的帮助.


在编辑中:它似乎表明控制台捕获了关键级别的日志消息.我想知道是否有办法配置它来捕获调试级别的消息.


这篇文章(Pycharm单元测试交互式调试命令行不起作用)建议将-s选项添加到构建配置,这不会产生所需的结果.

python pycharm

18
推荐指数
1
解决办法
6686
查看次数

标签 统计

python ×2

logging ×1

pycharm ×1