python - 如何使用 gunicorn 在 django 中编写 log.info() 以进行控制台?

标签 python django gunicorn

我已将 Django 日志记录配置为打印到控制台和日志文件。当我使用 python manage.py runserver 时,它起作用了。

但是,当我使用 gunicorn 作为 gunicorn app.wsgi:application 运行它时,print 语句进入控制台,但是 log.info() 不会去任何地方。

有什么想法吗?

最佳答案

它现在正在工作,我不知道如何...

我的 settings.py 部分:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,

    # How to format the output
    'formatters': {
        'standard': {
            'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt' : "%d/%b/%Y %H:%M:%S"
        },
    },

    # Log handlers (where to go)
    'handlers': {
        'null': {
            'level':'DEBUG',
            'class':'django.utils.log.NullHandler',
        },
        'logfile': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': PROJECT_ROOT + "/repackager.log",
            'maxBytes': 50000,
            'backupCount': 2,
            'formatter': 'standard',
        },
        'console':{
            'level':'INFO',
            'class':'logging.StreamHandler',
            'formatter': 'standard'
        },
        'celery': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': PROJECT_ROOT + "/celery.log",
            'formatter': 'standard',
            'maxBytes': 1024 * 1024 * 100,  # 100 mb
        },
    },

    # Loggers (where does the log come from)
    'loggers': {
        'repackager': {
            'handlers': ['console', 'logfile'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django': {
            'handlers':['console'],
            'propagate': True,
            'level':'WARN',
        },
        'django.db.backends': {
            'handlers': ['console', 'logfile'],
            'level': 'WARN',
            'propagate': False,
        },
        '': {
            'handlers': ['console', 'logfile'],
            'level': 'DEBUG',
        },
        'raven': {
            'level': 'DEBUG',
            'handlers': ['console'],
            'propagate': False,
        },
        'sentry.errors': {
            'level': 'DEBUG',
            'handlers': ['console'],
            'propagate': False,
        },
        'gunicorn.error': {
            'level': 'INFO',
            'handlers': ['logfile'],
            'propagate': True,
        },
        'gunicorn.access': {
            'level': 'INFO',
            'handlers': ['logfile'],
            'propagate': False,
        },
        'celery': {
            'handlers': ['celery'],
            'level': 'DEBUG',
        },
    }
}

views.py

# Logger
import logging    
log = logging.getLogger(__name__)

关于python - 如何使用 gunicorn 在 django 中编写 log.info() 以进行控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20143195/

相关文章:

django - 告诉 Django 使用哪个数据库模板

python - Google App Engine 标准环境中的 Gunicorn 服务器

django - Nginx+Gunicorn+Django1.5 - connect() 失败 (111 : Connection refused) while connecting to upstream

python - 在 python 中读取非常大的文本文件确实可以正确迭代

python - 如何从 graphviz 的布局中获取坐标?

python - 导入语句是如何找到那个模块的?

django - 如何分析 Django 的扩展瓶颈?

python - 操作系统错误 : [Errno 30] Read-only file system in Django on Heroku

django - 又不存在于/admin/login/---- 吗?

python - 安装了 gunicorn 但它不在 venv/bin 文件夹中