2012-05-09 7 views
16

Bir yaml dosyasından bir günlükçüyü yapılandırmaya çalışıyorum. docs.python.org ben bir yaml dosyası oluşturmak için nasıl bir örnek buldum ve yarattığı dosya şuna benzer:python2.7: yaml ile konfigürasyonu günlüğe kaydetme

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] 

Ama yapılandırma yüklemek için nasıl bir örnek bulamıyorum. Ben bunu yüklemeyle ilgili bir şey gördü:

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

ama bu atar "ValueError: Sözlük bir sürümünü belirtmeyen"

Yani benim soru: Python içinde bir günlükçüsüne bu yük nasıl ve Tıkanıcı ve flogger'ı nasıl kullanırım.

cevap

16

python documentation değerini okurken, yapılandırmada version yazan bir anahtarın olduğunu görürüz.

you can do,

version: 1 

diyor Yapılandırmanızda bir çizgi ihtiyaç Veya:

with open('logging.conf') as f: 
    D = yaml.load(f) 
    D.setdefault('version', 1) 
    logging.config.dictConfig(D) 
+0

Ah ben tamamen bu cevapsız. teşekkürler hayır bir cazibesi – Kempe

+5

gibi çalışır, nasıl açık ('logging.conf') ile f: '' 'dosya kapanır? – rbp