[Django]-Manually fire Django 1.3's traceback/exception log

3👍

first, configure your logging settings i settings.py:


    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'mail_admins': {
                'level': 'ERROR',
                'class': 'django.utils.log.AdminEmailHandler'
            }
        },
        'loggers': {
            'myproject': {
                'handlers': ['mail_admins'],
                'level': 'INFO',
                'propagate': True,
            },
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
            },
        }
    }

from now, all loggers which starts with ‘myproject’ should use AdminEmailHandler
your code should look like this:


    import logging
    logger = logging.getLogger('myproject.optional.path')
    # example
    # logger = logging.getLogger('myprojects.myapp.views')
    def worker_thread():
        while 1:
            func, args, kwargs = queue.get()
            try:
                func(*args, **kwargs)
            except:
                logger.exception("Async exploded")
            finally:
                queue.task_done()

👤drul

Leave a comment