V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
qazwsxkevin
V2EX  ›  Python

使用 loggging 模块做日志, console 输出内容,都是红色,应该怎么调?

  •  
  •   qazwsxkevin · 2019-09-20 14:33:40 +08:00 · 3241 次点击
    这是一个创建于 1924 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是这么干的:

        #生成日志
        logger = logging.getLogger()
        logger.setLevel(logging.INFO)  # Log 等级总开关
        LogFileHandler = logging.FileHandler(MatchDir + 'log.log', mode='a')
        LogFileHandler.setLevel(logging.NOTSET)  # 输出到 file 的 log 等级的开关
        # # 定义在 console 输出的日志颜色
        # COLORS = {
        # 'DEBUG': 'cyan',
        # 'INFO': 'green',
        # 'WARNING': 'yellow',
        # 'ERROR': 'red',
        # 'CRITICAL': 'red',
        # }
        # 输出到 console 的日志
        ConsoleHanler = logging.StreamHandler()
        ConsoleHanler.setLevel(logging.INFO)
        # 定义 handler 的输出格式
        formatter = logging.Formatter("[%(asctime)s]_[line:%(lineno)d]-[%(levelname)s] %(message)s",datefmt='%Y-%m-%d %H:%M:%S')
        LogFileHandler.setFormatter(formatter)
        ConsoleHanler.setFormatter(formatter)
        # 将 logger 添加到 handler 里面
        logger.addHandler(LogFileHandler)
        logger.addHandler(ConsoleHanler)
    

    情况是,在 pccharm console 输出的内容,无论是哪个级别的日志,都是默认红色的字体,
    尽管查过一些资料和 logging 模块的说明,相信应该是 Formatter 上设置,很多介绍没有一个例子来解疑惑,或者能成功的例子不是我上面这种思路的。。。

    2 条回复    2019-09-20 15:13:19 +08:00
    AntiGameZ
        1
    AntiGameZ  
       2019-09-20 14:42:24 +08:00
    vkhsyj
        2
    vkhsyj  
       2019-09-20 15:13:19 +08:00
    StreamHandler 默认输出到 stderr,设置一下就好了
    class logging.StreamHandler(stream=None)
    Returns a new instance of the StreamHandler class. If stream is specified, the instance will use it for logging output; otherwise, sys.stderr will be used.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5087 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 09:39 · PVG 17:39 · LAX 01:39 · JFK 04:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.