【问题标题】:How to set Python Tornado pretty log如何设置 Python Tornado 漂亮日志
【发布时间】:2017-08-17 15:46:28
【问题描述】:
我这样写龙卷风的日志:
app_log = logging.getLogger("tornado.application")
并且记录没有颜色的输出:
[W 160803 17:04:32 test:68] warn
[E 160803 17:04:32 test:69] error
[I 160803 17:04:32 test:72] info
即使我打电话给enable_pretty_logging(),它仍然没有颜色。
【问题讨论】:
标签:
python
logging
tornado
【解决方案1】:
当满足两个条件时使用颜色:
- stderr 是一个 tty(即不重定向到文件或管道)
-
curses 模块认为支持颜色(基于TERM 环境变量)
如果TERM 未设置,请尝试设置TERM=ansi。
【解决方案2】:
关于颜色格式可以看enable_pretty_logging的源码:
if (options.log_to_stderr or
(options.log_to_stderr is None and not logger.handlers)):
# Set up color if we are in a tty and curses is installed
channel = logging.StreamHandler()
channel.setFormatter(LogFormatter())
logger.addHandler(channel)
如果您的选项满足条件,则日志将是彩色的。或者,无论什么情况,您都可以只添加颜色格式日志处理程序。
from tornado.log import LogFormatter
app_log = logging.getLogger("tornado.application")
channel = logging.StreamHandler()
channel.setFormatter(LogFormatter())
app_log.addHandler(channel)