首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志记录:记录器不记录到文件,而是登录到控制台。

日志记录:记录器不记录到文件,而是登录到控制台。
EN

Stack Overflow用户
提问于 2016-05-04 10:42:58
回答 1查看 880关注 0票数 1

我正在尝试为基于芹菜的应用程序配置一个记录器。控制台日志记录工作正常。但是,日志消息没有添加到我指定的日志文件:celery.log中。

  • 为什么日志消息没有写入日志文件?

下面是我的日志记录配置

代码语言:javascript
复制
# log_config.py    

import sys

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'simple': {
            'format': '%(levelname)s %(message)s',
             'datefmt': '%y %b %d, %H:%M:%S',
            },
        },
    'handlers': {
        'console': {
            'level': 'WARN',
            'class': 'logging.StreamHandler',
            'stream': sys.stdout,
            'formatter': 'simple'
        },
        'celery': {
            'level': 'WARN',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': '/tmp/celery.log',
            'formatter': 'simple',
            'backupCount': 5,
            'maxBytes': 1024 * 1024 * 100,  # 100 mb
        },
    },
    'loggers': {
        'celery': {
            'handlers': ['celery', 'console'],
            'propagate': True,
            'level': 'WARN',
        },
    }
}

芹菜和原木初始化:

代码语言:javascript
复制
dictConfig(log_config.LOGGING)
app = Celery('app',
             broker=env('CELERY_BROKER_URL', 'amqp://'),
             backend=env('CELERY_BACKEND_URL', 'rpc://'),
             include='tasks')

样本输出

代码语言:javascript
复制
[2016-05-04 12:32:45,077: WARNING/MainProcess] celery@computer1 ready.
[2016-05-04 12:32:47,503: WARNING/Worker-2] [INFO] Running plugin `one` with target `www.example.com`
[2016-05-04 12:32:47,508: WARNING/Worker-1] [INFO] Running plugin `two` with target `www.example.com`
[2016-05-04 12:32:47,559: WARNING/Worker-3] [INFO] Running plugin `three` with target `('127.0.0.1', 'example.com')`
[2016-05-04 12:32:47,559: WARNING/Worker-3] tasks.MySampleTask[31ffe71d-4645-47f2-1237-4c431282ac12]: it works!

PS:我不使用Django。

EN

回答 1

Stack Overflow用户

发布于 2016-05-04 20:12:45

您可以使用CELERYD_HIJACK_ROOT_LOGGER设置来使用自定义记录器。

代码语言:javascript
复制
app.conf.update(CELERYD_HIJACK_ROOT_LOGGER=False)

如果重新启动worker,它将生成一个芹菜日志文件。

您可以阅读更多关于这个在芹菜里的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37025448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档