2015-07-01 7 views
5

मैं पिछले घंटे से इस पर अटक गया हूं। मैंने अपने tkinter gui में लॉगिंग प्लग किया था, लेकिन यह काम करने के लिए नहीं मिल सका। तब मैंने भागों को हटाने शुरू कर दिया जब तक कि मुझे बहुत ही पाइथन दस्तावेज़ों में नंगे हड्डियों के उदाहरण मिलते हैं और यह काम नहीं करेगा। इस बिंदु पर मेरे पास हटाने के लिए और कुछ नहीं है।पायथन लॉगिंग फ़ाइल को सहेज नहीं रहा

import logging 

LOG_FILENAME = r'logging_example.out' 


logging.basicConfig(filename=LOG_FILENAME ,level=logging.DEBUG) 
logging.debug('This message should go to the log file') 
logging.info('So should this') 
logging.warning('And this, too') 

f = open(LOG_FILENAME, 'rt') 
try: 
    body = f.read() 
finally: 
    f.close() 

print('FILE:') 
print (body) 

चेतावनी stdout में छपा है, लेकिन फ़ाइल उत्पन्न नहीं कर रहा है:

कोड इस प्रकार है। मैं विंडोज 7 पर पाइथन 3.4, x64 चला रहा हूं। यह एक एनाकोंडा वितरण है, इसलिए यह स्पाइडर के अंदर आईपीथॉन में चल रहा है।

मुझे लगता है कि यह काम करना चाहिए

+0

यह शैल से python.exe चलाते समय काम करता है। अपने पर्यावरण के साथ कुछ होना चाहिए। –

उत्तर

6

के रूप में जोनास Bystrom बताया गया है, इस IPython के बाहर काम करता है। ऐसा लगता है कि ऐसा करने का मौका मिलने से पहले Ipython एक लॉगिंग हैंडलर को कॉन्फ़िगर करता है। इसके अलावा, basicConfig कुछ भी नहीं करेगा यदि कोई हैंडलर पहले से मौजूद है। इसलिए, इसे Ipython में काम करने के लिए, किसी को तीन चीजों में से एक करना होगा: 1) एक नया हैंडलर जोड़ें, या 2) रीलोड लॉगिंग, या 3) मौजूदा हैंडलर को हटा दें। मैंने नंबर 2 बोले किया।

import logging 
from imp import reload 
reload(logging) 
LOG_FILENAME = r'logging_example.out' 


logging.basicConfig(filename=LOG_FILENAME ,level=logging.DEBUG) 
logging.debug('This message should go to the log file') 
logging.info('So should this') 
logging.warning('And this, too') 

f = open(LOG_FILENAME, 'rt') 
try: 
    body = f.read() 
finally: 
    f.close() 

print('FILE:') 
print (body) 

अधिक जानकारी के लिए इन देखें: Logging in ipython; More on the same

+0

मैं विकल्प 2 भी पसंद करता हूं, क्योंकि यह आसान है और मुझे सभी लॉगिंग व्यवहारों पर अधिक नियंत्रण रखने की अनुमति देता है। +1 – DaveL17

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