大幅度改变celery日志外观,修改成日志可点击跳转和鲜艳五彩日志,解决脚本中已添加handler的logger和框架日志重复记录问题。

 大幅度改变celery日志外观,修改成日志可点击跳转和鲜艳五彩日志,解决脚本中已添加handler的logger和框架日志重复记录问题。打猴子补丁。

 

 

打猴子补丁,
import logging
from nb_log.handlers import ColorHandler
logging.StreamHandler = ColorHandler # 一键替换所有streamhandler为自己的colorhandler 使所有控制台日志自动变彩色。因为都是继承自Handler基类,公有方法和入参完全一致,所以可以直接赋值替换。

设置celery的conf配置项,解决日志可点击跳转问题。
worker_task_log_format ='%(asctime)s - %(name)s - "%(pathname)s:%(lineno)d" - %(funcName)s - %(levelname)s - %(message)s'
worker_log_format ='%(asctime)s - %(name)s - "%(pathname)s:%(lineno)d" - %(funcName)s - %(levelname)s - %(message)s'


禁止print重定向,不希望print被转化成celery日志。配置这个。
worker_redirect_stdouts = False

 

 

你可以写一个函数,从而一键切换日志:

def patch_celery_console():
    import logging
    from nb_log.handlers import ColorHandler
    logging.StreamHandler = ColorHandler  # 解决celery的颜色不好看的问题

    #设置celery的conf配置项,解决日志可点击跳转问题。
    print(celery_app.conf)
    celery_app.conf.worker_task_log_format = '%(asctime)s - %(name)s - "%(pathname)s:%(lineno)d" - %(funcName)s - %(levelname)s - %(message)s'
    celery_app.conf.worker_log_format = '%(asctime)s - %(name)s - "%(pathname)s:%(lineno)d" - %(funcName)s - %(levelname)s - %(message)s'

    #禁止print重定向,不希望print被转化成celery日志。配置这个。
    celery_app.conf.worker_redirect_stdouts = False

 

 

 

 

 

对比原来的日志,原来的日志样式太差了。不可点击跳转和无彩色。

 

posted @ 2019-07-19 16:19  北风之神0509  阅读(862)  评论(1编辑  收藏  举报