brewcrazy
brewcrazy

Reputation: 665

Not seeing my log messages - Django/Apache/mod_wsgi

Settings:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/Users/user/djangoLogs/debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

I've added the following to my views.py

logger = logging.getLogger(__name__)

However, I'm not seeing any of my log messages in the debug.log. I do see some Django logs/error messages so it seems like the native Django logging is working.

Here's an example of a log message that I'm expecting to see:

try:
    response.raise_for_status()
except requests.exceptions.HTTPError as e:
    logger.debug("get_thumbnails call failed: ", e)

httpd.conf

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel debug

mod-wsgi version is 4.6.4 Django version is 2.1

Upvotes: 1

Views: 3776

Answers (1)

Sachin
Sachin

Reputation: 3674

Django comes with an in-built logger. Use that to produce the logs.

Example:

# settings.py
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/django/debug.log',
        },
        'your_handler': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/logs'
        }
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'your_logger': {
            'handlers': ['your_handler'],
            'level': 'DEBUG',
            'propagate': True
        }
    },
}

EDIT:

Updated the above piece of code to include a custom logger named your_logger which you can use from your view to write to.

view:

logger = logging.getLogger('your_logger')

Upvotes: 1

Related Questions