1

我正在从文件加载我的日志记录配置。日志文件如下:

[loggers]
keys=root

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stderr,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('../output.log','w')

[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=

我使用以下方法创建了一个记录器:

_logger = logging.getLogger(__name__)
logging.config.fileConfig('../logging.conf')

但是,当我运行我的程序时,我没有看到任何日志记录输出。如果我为我的模块添加一个单独的记录器,那么日志记录会按预期工作。但是这样设置是行不通的。我究竟做错了什么?

4

2 回答 2

1

通过像这样创建日志文件:

_logger = logging.getLogger(__name__)

它将查找名称为 的文件__main__,您的模块将等于"__main__"。但是,您导入的其他模块将__name__与该模块的模块名称相同。

于 2013-05-11T00:43:57.957 回答
1

您需要在配置之后放置记录器创建。该logging.fileConfig调用将禁用预先存在的记录器,这就是您的记录器无法正常工作的原因。

于 2013-05-23T20:35:13.013 回答