2015-06-25 6 views
5

मैंने फ्लास्क सर्वर के लिए एक TimedRotatingHandler बनाया है। लेकिन werkzeug द्वारा उत्पन्न सभी लॉग अभी भी कंसोल पर फेंक दिए गए हैं।TimedRotatingHandler का उपयोग करते समय एक लॉग फ़ाइल में python flask werkzeug लॉग को पुनर्निर्देशित करने के लिए कैसे करें?

लॉग इन घूर्णन कार्यक्षमता के साथ मैं इन लॉग को लॉग फ़ाइल (test.log) पर कैसे रीडायरेक्ट कर सकता हूं।

कोड स्निपेट:

log = logging.getLogger(__name__) 
log.setLevel(logging.DEBUG) 
# add a file handler 
fh = logging.handlers.TimedRotatingFileHandler("test.log",when='M',interval=1,backupCount=0) 
fh.setLevel(logging.DEBUG) 
# create a formatter and set the formatter for the handler. 
frmt = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') 
fh.setFormatter(frmt) 
# add the Handler to the logger 
log.addHandler(fh) 
app.run(host='0.0.0.0', debug=True) 

नीचे दिए गए लॉग अभी भी कंसोल पर फेंक दिया जाता है।

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 
* Restarting with stat 
192.168.1.6 - - [25/Jun/2015 07:11:13] "GET/HTTP/1.1" 200 - 
192.168.1.6 - - [25/Jun/2015 07:11:13] "GET /static/js/jquery-1.11.2/jquery-1.11.2.min.js HTTP/1.1" 304 - 
192.168.1.6 - - [25/Jun/2015 07:11:13] "GET /static/js/main/main.js HTTP/1.1" 304 - 
192.168.1.6 - - [25/Jun/2015 07:11:13] "GET /favicon.ico HTTP/1.1" 404 - 

WERKZEUG लकड़हारा करने के लिए लॉग फ़ाइल हैंडलर जोड़ना भी समस्या

logging.getLogger('werkzeug').addHandler(fh); 

उत्तर

1

ऐसा लगता है कि WERKZEUG एक नामित लकड़हारा जड़ लकड़हारा के बजाय करने के लिए यह संदेश भेजता है की तरह हल नहीं है।

आप इस यह आपकी फ़ाइल logging.getLogger().addHandler(fh)

लिए आपको लॉग इन करते यह कंसोल के लिए प्रवेश करने से रोकने के लिए तो आप जड़ लकड़हारा से धारा प्रबंधक को निकाल करना होगा चाहते हैं शुरू कर देना चाहिए प्रयास करें। आप

>>> print logging.getLogger().handlers [<logging.StreamHandler object at 0x.....>, logging.handlers.TimedRotatingFileHandler object at 0x.....>]

-1

का उपयोग करके जड़ लकड़हारा के लिए संचालकों को देखने यदि आपको लॉग इन logging.root.handler तरह ओवरराइड करने के लिए की जरूरत है werkzeung को बदलने के लिए कर सकते हैं:

import logging 
from logging.handlers import RotatingFileHandler 

handler = RotatingFileHandler('log.log', maxBytes=10000, backupCount=1) 
handler.setLevel(logging.ERROR) 

logging.root.handlers = [handler] 

जानकारी के लिए here देखें।

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