2011-04-22 8 views
6

मैंने अभी django-sentry स्थापित किया है, और यह अपवादों को ठीक से पकड़ता है। हालांकि लॉगजर करने के लिए कहते हैं। चेतावनी और लॉगर। किसी कारण से आतंक को सेंट्री में सहेजा नहीं जा रहा है।django-sentry चेतावनी रिकॉर्डिंग, त्रुटियों, आदि

संतरी कार्यान्वयन:

import logging 
from sentry.client.handlers import SentryHandler 

logger = logging.getLogger() 
# ensure we havent already registered the handler 
if SentryHandler not in map(lambda x: x.__class__, logger.handlers): 
    logger.addHandler(SentryHandler()) 
# Add StreamHandler to sentry's default so you can catch missed exceptions 
logger = logging.getLogger('sentry.errors') 
logger.propagate = False 
logger.addHandler(logging.StreamHandler()) 

लकड़हारा कॉल:

logger.warning("Category is not an integer", exc_info=sys.exc_info(), extra={'url': request.build_absolute_uri()}) 

कोई भी विचार? धन्यवाद! ,

logger.setLevel (logging.DEBUG)

logging.getlogger के बाद यह देव env पर मेरे लिए काम करता है:

+0

इस पर कोई अद्यतन? मेरे पास एक समान समस्या है, सिंट्री लॉगिंग को छोड़कर मेरे देव सर्वर पर ठीक काम करता है लेकिन मेरा उत्पादन सर्वर नहीं। मेरे उत्पादन में ऊपर सूचीबद्ध सटीक लक्षण हैं। –

+0

जहां आपको चेतावनी बचाने के लिए लॉगर मिलता है और जब सेंट्री हैंडलर जोड़ते हैं तो निष्पादित किया जाता है? क्योंकि अगर आप इसे manage.py में प्रयोग करते हैं, तो इसे उत्पादन पर निष्पादित नहीं किया जा सकता है, उदाहरण के लिए। – Alerion

+0

मैं चेतावनी लॉग करने से पहले सेंट्री लॉगर जोड़ता हूं, इसलिए मुझे यकीन है कि इसे निष्पादित किया जा रहा है। मुझे नहीं पता कि यह मेरे देव सर्वर पर क्यों काम करेगा, न कि मेरे उत्पादन सर्वर, हालांकि। –

उत्तर

3

जोड़ने की कोशिश करो।

+0

आपके उत्तर के लिए धन्यवाद। दुर्भाग्य से यह मेरे लिए काम नहीं किया। 404 और 500 के साथ-साथ अन्य अपवाद भी रिकॉर्ड किए गए हैं ... हालांकि कोई अन्य विचार? धन्यवाद! – rabbid

+0

थोड़ा अपडेट। न केवल यह काम नहीं करता है, कोड की वह पंक्ति वास्तव में मेरे Django dev सर्वर को मार देती है। जब मैं इसे टिप्पणी करता हूं, चीजें फिर से ठीक काम करती हैं। पागल। – rabbid

0

आप फ़ाइल हैंडलर को 'sentry.errors' लॉगर में जोड़ सकते हैं और जांच कर सकते हैं कि इसमें उत्पादन में कुछ त्रुटि है या नहीं। लेकिन वास्तव में सर्वर लॉग पर stdout लिखा जाना चाहिए। यह जांच सकते हैं।

3

आप प्रेषित स्ट्रीम हैंडलर को logging.getLogger('sentry.errors') पर संलग्न कर रहे हैं। इसका मतलब है कि sentry.errors या उससे नीचे के लॉग जो उस संत्री स्ट्रीम हैंडलर का उपयोग करेंगे।

लेकिन 'my_app.something' पर लॉग इन खत्म नहीं होते हैं! तो आप लगभग सभी लॉग संदेश गायब हैं।

समाधान: रूट लॉगर में स्ट्रीम हैंडलर संलग्न करें: logging.getLogger('')

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