使用配置文件时重复的日志消息

时间:2015-06-11 10:23:02

标签: python logging

我正在摸不着头脑,明白我做错了什么。 我希望将所有应用程序日志配置在一个文件中,因此我按以下步骤操作:

logging.conf

[loggers]
keys=root,MONARCH,MONARCH.MESSAGE-PARSER,MONARCH.SYNTAX-PARSER,MONARCH.SYNTAX

[handlers]
keys=consoleHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=INFO
handlers=consoleHandler

[logger_MONARCH]
level=DEBUG
handlers=consoleHandler
qualname=MONARCH

[logger_MONARCH.SYNTAX]
level=DEBUG
handlers=consoleHandler
qualname=MONARCH.SYNTAX

[logger_MONARCH.MESSAGE-PARSER]
level=DEBUG
handlers=consoleHandler
qualname=MONARCH.MESSAGE-PARSER

[logger_MONARCH.SYNTAX-PARSER]
level=DEBUG
handlers=consoleHandler
qualname=MONARCH.SYNTAX-PARSER

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

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

一个简单的电话给我重复的消息日志:

import logging.config

logging.config.fileConfig("./logging.conf",
                          disable_existing_loggers=True)

l1 = logging.getLogger("MONARCH")
l2 = logging.getLogger("MONARCH.MESSAGE-PARSER")
l3 = logging.getLogger("MONARCH.ME")


l1.info("test l1")
l2.debug("test l2")
l3.info("test l3")

然后所有邮件都重复。

'2015-06-11 12:09:45,328 - [INFO] - [MONARCH] - test l1'
'2015-06-11 12:09:45,328 - [INFO] - [MONARCH] - test l1'
'2015-06-11 12:09:45,328 - [DEBUG] - [MONARCH.MESSAGE-PARSER] - test l2'
'2015-06-11 12:09:45,328 - [DEBUG] - [MONARCH.MESSAGE-PARSER] - test l2'
'2015-06-11 12:09:45,328 - [DEBUG] - [MONARCH.MESSAGE-PARSER] - test l2'
'2015-06-11 12:09:45,328 - [INFO] - [MONARCH.ME] - test l3'
'2015-06-11 12:09:45,328 - [INFO] - [MONARCH.ME] - test l3'

我的第一个目标是使用module level log并具有不同的日志级别。

0 个答案:

没有答案