2016-11-29 20 views
9

Python'da oldukça yeni ve kayıt modülüne girmeye başladım. İletinin bir günlük dosyasına kaydedilmesini ve konsola çıkmasını istiyorum. Aşağıdaki kod, iletiyi konsola yazdırıyor, ancak tüm iletinin bir dosyada oturum açmasını nasıl sağlayabilirim?Python günlüğe kaydetme ve günlük dosyasına giriş

Kaydedici nesnesi, bir dosyaya giriş yapmak için bir işlev çağrısına (basicConfig (dosya adı =)) sahip değil. Bu işlevi nasıl ekleyebilirim?

Yardımlarınız için şimdiden teşekkür ederiz.

import logging 

# create logger 
logger = logging.getLogger(_name_) 
logger.setLevel(logging.DEBUG) 

# create console handler and set level to debug 
ch = logging.StreamHandler() 
ch.setLevel(logging.DEBUG) 

# create formatter 
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 

# add formatter to ch 
ch.setFormatter(formatter) 

# add ch to logger 
logger.addHandler(ch) 

# 'application' code 
logger.debug('debug message') 
logger.info('info message') 
logger.warn('warn message') 
logger.error('error message') 
logger.critical('critical message') 
+0

logger = logging.getLogger (\ _ \ _ adı \ _ \ _) detay açıklama için – mujjiga

cevap

12

Sadece Brendan cevabı @ üzerinde Genişleyen bir logging.FileHandler

fh = logging.FileHandler(r'/path/to/log.txt') 
logger.addHandler(fh) 
5

gibi başka işleyici eklemeniz gerekir.

Kaydediciniz şu anda bir StreamHandler kullanarak konsola çıkıyor.

FileHandler ekleyerek, bir dosyaya giriş yapabilirsiniz.

Her işleyici örneği kendi biçim ve günlüğe kaydetme düzeyine sahip olacak şekilde özelleştirilebilir.

Aynı formatı kullanarak giriş yapmak isterseniz, yeni FileHandler'da da formatı ayarlamanız gerekir.

fh = logging.FileHandler(r'/path/to/log.txt') 
fh.setFormatter(formatter) 
logger.addHandler(fh) 

Devamı: Python logging cookbook

+0

teşekkürler! – Zen

İlgili konular