python - 使用 fileConfig 在 Python 中配置自定义处理程序

标签 python python-3.x logging

我正在使用配置文件在 Python 应用程序中配置我的记录器。这是文件:

[loggers]
keys=root

[logger_root]
level=INFO
handlers=console

[handlers]
keys=console,file_rotating

[handler_console]
class=StreamHandler
level=WARNING
formatter=console
args=(sys.stderr,)

[handler_file_rotating]
class=TimeRotatingFileHandler
level=DEBUG
formatter=file
args=('../logs/twicker.log', 'd', 1, 5)

[formatters]
keys=console,file

[formatter_console]
format=%(levelname)s - %(message)s

[formatter_file]
format=%(asctime)s - %(levelname)s - %(module)s - %(message)s

我的问题是 TimeRotatingFileHandler。每次运行该应用程序时,我都会收到下一个错误:

ImportError: No module named 'TimeRotatingFileHandler'

我做错了什么?我还尝试将类行更改为 class=handlers.TimeRotatingFileHandler 但在那种情况下我会收到下一个错误:

ImportError: No module named 'handlers'

最佳答案

class= 是在 logging 模块的命名空间中计算的,默认情况下它没有绑定(bind)到 handlers。所以你可以做

import logging, logging.handlers
logging.handlers = logging.handlers

在调用 fileConfig() 之前,然后 class=handlers.TimedRotatingHandler 应该可以工作。

关于python - 使用 fileConfig 在 Python 中配置自定义处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28054864/

相关文章:

python - Django 多对多字段 : 'tuple' object has no attribute 'user'

python - 是否有一种始终以 0.x 开头的 float 字符串格式?

python - 用时间戳格式的变量替换 pandas 数据帧上的年份

logging - Visual Studio 2005 中的简单宏输出/控制台日志记录?

c# - 尝试写入事件日志时出错 - 无法打开源 'SourceName' 的日志。您可能没有写入权限

python - Stem 作为 python tor 客户端 - 卡在加载描述符上

python - 如何统计 Django 网站的访问者数量?

java - "Importing test library ' Selenium2Library ' failed: ImportError: No module named decorator"RobotFramework maven插件

Python 3 : UnboundLocalError: local variable 'card' referenced before assignment

exception - 错误日志数据库-对于许多应用程序