首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python中logging.getLogger与配置文件中到loggers有跟关联关系吗

2013-07-11 
python中logging.getLogger与配置文件中到loggers有和关联关系吗?import logging, logging.configlogging.

python中logging.getLogger与配置文件中到loggers有和关联关系吗?
import logging, logging.config
logging.config.fileConfig("JobsProject/log4p.conf")
logger = logging.getLogger("main")
logger.debug("test")
exit()

#################以下是配置内容,问题在于,为何上面一行输出会打印两条记录?

[formatters]

keys=simpleFormatter

[formatter_simpleFormatter]

format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S

[handlers]

keys=consoleHandler

[handler_consoleHandler]

class=StreamHandler

level=DEBUG

formatter=simpleFormatter

args=(sys.stdout,)

[loggers]

keys=root,main

[logger_root]

level=DEBUG

handlers=consoleHandler

[logger_main]

level=DEBUG

handlers=consoleHandler

qualname=main
[解决办法]
一行是main logger的,一行是root logger的。没有特别指定的情况下,子logger log的内容会再传给父logger处理。

在log4p.conf中的logger_main这一节中加上:

propagate=0

main处理的内容不会再给root logger,就不会有两行输出了。
[解决办法]
目的不清楚(好像也没看到有人问,自然也没人解释),大概来说查找单独一个模块/功能相关的问题,可以检查相关的log,检查模块间交互过程中的问题,则可能需要检查多个log,父logger的作用就是把多个子log的内容合并。

python logging中,root是所有的logger的祖先。
[解决办法]
可以有多级,具体看文档。

热点排行