18

yaml ファイルからロガーを構成しようとしています。docs.python.org で、yaml ファイルの作成方法の例を見つけました。作成したファイルは次のようになります。

formatters:
    simpleFormater:
        format: '%(asctime)s - %(levelname)s: %(message)s'
        datefmt: '%Y/%m/%d %H:%M:%S'

handlers:
    console:
        class: logging.StreamHandler
        formatter: simpleFormater
        level: DEBUG
        stream: ext://sys.stdout
    file:
        class : logging.FileHandler
        formatter: simpleFormater
        level: WARNING
        filename: songinfo.log

loggers:
    clogger:
        level: DEBUG
        handlers: [console]
    flogger:
        level: WARNING
        handlers: [file]

root:
    level: DEBUG
    handlers: [console, file]

しかし、構成をロードする方法の例が見つかりません。私はそれをロードすることについて何かを見ました:

logging.config.dictConfig(yaml.load(open('logging.conf', 'r')))

しかし、それは「ValueError:辞書はバージョンを指定していません」をスローします

私の質問は、これを Python のロガーにロードする方法と、clogger と flogger を使用する方法です。

4

1 に答える 1

17

Pythonのドキュメントを読むと、構成に必要なキーがあることがわかりますversion

構成に次の行が必要です

version: 1

または、次のことができます。

with open('logging.conf') as f:
    D = yaml.load(f)
    D.setdefault('version', 1)
    logging.config.dictConfig(D)
于 2012-05-09T15:44:46.773 に答える