2016-11-29 6 views
9

पर लॉगिंग लॉगिंग मैं पाइथन में बिल्कुल नया हूं और लॉगिंग मॉड्यूल में प्रवेश करना शुरू कर रहा हूं। मैं लॉग फ़ाइल में लॉग इन संदेश और कंसोल पर आउटपुट करना चाहता हूं। नीचे दिया गया कोड संदेश को कंसोल पर प्रिंट करता है लेकिन मैं फ़ाइल में लॉग इन करने के लिए सभी संदेश कैसे प्राप्त कर सकता हूं?पायथन लॉगिंग और लॉग फ़ाइल

लॉगर ऑब्जेक्ट में फ़ाइल पर लॉगिंग के लिए फ़ंक्शन कॉल (BasicConfig (filename =)) नहीं है। मैं इस कार्यक्षमता को कैसे जोड़ सकता हूं?

अग्रिम सहायता के लिए धन्यवाद।

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

लकड़हारा = logging.getLogger (\ _ \ _ नाम \ _ \ _) – mujjiga

उत्तर

12

आप सिर्फ एक और हैंडलर जोड़ने के लिए, एक logging.FileHandler

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

@ ब्रेंडन के जवाब पर विस्तार की तरह की जरूरत है।

आपका लॉगर वर्तमान में StreamHandler का उपयोग कर कंसोल पर आउटपुट करता है।

FileHandler जोड़कर, आप एक फ़ाइल में लॉग इन कर सकते हैं।

प्रत्येक हैंडलर उदाहरण को अपना प्रारूप और लॉगिंग स्तर रखने के लिए अनुकूलित किया जा सकता है।

यदि आप एक ही प्रारूप का उपयोग करके लॉग इन करना चाहते हैं, तो आपको प्रारूप को नए फ़ाइलहैंडलर पर भी सेट करना होगा।

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

और अधिक पढ़ें: Python logging cookbook

+0

विस्तार स्पष्टीकरण के लिए धन्यवाद! – Zen

संबंधित मुद्दे