Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't get access log to work for gunicorn

I'm running gunicorn behind ngninx. I want to log errors in gunicorn to gunicorn-error.log and access logs to gunicorn-access.log.

I've got the errorlog working but not the access log, what am I doing wrong?

This is my gunicorn.conf.py:

bind = '127.0.0.1:8888' backlog = 2048 workers = 3 errorlog = '/home/my/logs/gunicorn-error.log' accesslog = '/home/my/logs/gunicorn-access.log' loglevel = 'debug' proc_name = 'gunicorn-my' pidfile = '/var/run/my.pid' 

This is the script to run gunicorn:

#!/bin/bash set -e ENV=/home/my/env/bin/activate GUNICORN=gunicorn_django SETTINGS_PATH=/home/my/app/app/settings PROJECT_PATH=/home/my/app CONFROOT=/home/my/app/conf/gunicorn.conf.py  cd $SETTINGS_PATH source $ENV export PYTHONPATH=$PROJECT_PATH exec $GUNICORN app.settings.staging -c $CONFROOT 

It creates both gunicorn-error.log and gunicorn-access.log but only gunicorn-error.log gets any logs, eg:

2012-11-20 11:49:57 [27817] [INFO] Starting gunicorn 0.14.6 2012-11-20 11:49:57 [27817] [DEBUG] Arbiter booted 2012-11-20 11:49:57 [27817] [INFO] Listening at: http://127.0.0.1:8888 (27817) 2012-11-20 11:49:57 [27817] [INFO] Using worker: sync 2012-11-20 11:49:58 [27825] [INFO] Booting worker with pid: 27825 2012-11-20 11:49:58 [27828] [INFO] Booting worker with pid: 27828 2012-11-20 11:49:58 [27830] [INFO] Booting worker with pid: 27830 

What am I doing wrong? Anyone want to share their working gunicorn.conf.py with error logs and access logs?

like image 750
Mikael Avatar asked Nov 20 '12 12:11

Mikael


People also ask

How do I get the Gunicorn log?

¶ In version 19.0, Gunicorn doesn't log by default in the console. To watch the logs in the console you need to use the option --log-file=- . In version 19.2, Gunicorn logs to the console by default again.

Where is the Gunicorn log?

This log file is located at /var/log/cloudify/rest/gunicorn-access.


1 Answers

I have changed my logging configuration in Django to following and it helped:

LOGGING = {     'version': 1,     'disable_existing_loggers': True,     'root': {         'level': 'WARNING',         'handlers': ['sentry'],     },     'formatters': {         'verbose': {             'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'         },         'generic': {             'format': '%(asctime)s [%(process)d] [%(levelname)s] %(message)s',             'datefmt': '%Y-%m-%d %H:%M:%S',             '()': 'logging.Formatter',         },     },     'handlers': {         'sentry': {             'level': 'ERROR',             'class': 'raven.contrib.django.handlers.SentryHandler',         },         'console': {             'level': 'DEBUG',             'class': 'logging.StreamHandler',             'formatter': 'verbose'         },         'error_file': {             'class': 'logging.FileHandler',             'formatter': 'generic',             'filename': '/home/fungine/gunicorn.error.log',         },         'access_file': {             'class': 'logging.FileHandler',             'formatter': 'generic',             'filename': '/home/fungine/gunicorn.access.log',         },     },     'loggers': {         'django.db.backends': {             'level': 'ERROR',             'handlers': ['console'],             'propagate': False,         },         'raven': {             'level': 'DEBUG',             'handlers': ['console'],             'propagate': False,         },         'sentry.errors': {             'level': 'DEBUG',             'handlers': ['console'],             'propagate': False,         },         'gunicorn.error': {             'level': 'INFO',             'handlers': ['error_file'],             'propagate': True,         },         'gunicorn.access': {             'level': 'INFO',             'handlers': ['access_file'],             'propagate': False,         },     }, } 
like image 127
Tomasz Wysocki Avatar answered Oct 26 '22 01:10

Tomasz Wysocki