配置文件出错:handler -Python logging

问题描述 投票:2回答:1

简单的python尝试使用文件配置写入日志信息

import logging
import logging.config
import os

logging.config.fileConfig('Log_parameters.ini')

log_learn = logging.getLogger('sakthi')

def complex_algorithm(items):
    for i, item in enumerate(items):
        # do some complex algorithm computation
        log_learn.debug('%s iteration, item=%s', i, item)

k = [1,2,3]

complex_algorithm(k)

Log_parameters.ini我在配置文件中设置处理程序,格式化程序。

[loggers]
keys = sakthi
[handlers]
keys = handle1
[formatters]
keys = simpleformatter

[logger_sakthi]
level = DEBUG
handlers = handle1
qualname = compiler.parser
propogate = 0

[logger_handle1]
class = FileHandler
level = DEBUG
formatter = simpleformatter
args= ('Configg_log','w')

[formatter_simpleformatter]
format=F1 %(asctime)s - %(name)s - %(levelname)s - %(message)s'
datefmt  =

执行时,我得到以下错误,KeyError

回溯(最近一次调用最后一次):文件“C:/Users/M/PycharmProjects/LOGGING/Log_data_config_file.py”,第6行,在logging.config.fileConfig('Log_parameters.ini')文件“C:\ Users \ M \ appData \ Local \ Programs \ Python \ Python37-32 \ lib \ logging \ config.py“,第79行,在fileConfig处理程序= _install_handlers(cp,formatters)文件”C:\ Users \ M \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ logging \ config.py“,第134行,在_install_handlers部分= cp [”handler_%s“%hand]文件”C:\ Users \ M \ AppData \ Local \ Programs \ Python \ Python37 -32 \ lib \ configparser.py“,第958行,在getitem中引发KeyError(key)KeyError:'handler_handle1'

python python-3.x pycharm
1个回答
0
投票

您需要在配置文件中修复几件事:

1)将root添加到loggers部分:

[loggers]
keys = root,sakthi

2)添加logger_root部分:

[logger_root]
level=NOTSET
handlers=handle1

3)将[logger_handle1]部分重命名为handler_handle1

之后,您将拥有以下配置文件:

[loggers]
keys = root,sakthi
[handlers]
keys = handle1
[formatters]
keys = simpleformatter

[logger_root]
level=NOTSET
handlers=handle1

[logger_sakthi]
level = DEBUG
handlers = handle1
qualname = compiler.parser
propogate = 0

[handler_handle1]
class = FileHandler
level = DEBUG
formatter = simpleformatter
args= ('Configg_log','w')

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

并且代码将正确运行,将此输出写入Configg_log文件:

F1 2019-04-22 00:29:37,091 - sakthi - DEBUG - 0 iteration, item=1
F1 2019-04-22 00:29:37,091 - sakthi - DEBUG - 1 iteration, item=2
F1 2019-04-22 00:29:37,091 - sakthi - DEBUG - 2 iteration, item=3
© www.soinside.com 2019 - 2024. All rights reserved.