如何解决使用ubuntu-latest在github运行程序中基于Python的彩色日志记录
我正在使用此库https://coloredlogs.readthedocs.io/en/latest/index.html在python中使用此库
import coloredlogs,logging
logger = logging.getLogger(__name__)
coloredlogs.install(level='DEBUG',logger=logger)
logger.debug("test")
以上代码在我的本地计算机上按预期工作,并且test
在green.
中打印输出
但是,当我在像这样的github运行程序上运行此代码时
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Create workflow
run: |
python scripts/my-logging-file.py
在跑步者上生成的输出没有任何颜色。是否有任何特定的环境。需要设置或其他任何更改的变量?
解决方法
降级为coloredlogs==12.0
可以解决以下根据kosta的评论所述的问题。
coloredlogs
默认使用自动检测,在Linux上,仅当输出为TTY时才启用彩色输出。根据文档,应该将isatty = True
通过**kw
传递到coloredlogs.install
以强制进行彩色输出。
但是文档和代码不一致,看起来代码有错误并且强制彩色输出不起作用。参见https://github.com/xolox/python-coloredlogs/issues/84。
import coloredlogs,logging
logger = logging.getLogger(__name__)
coloredlogs.install(level='DEBUG',logger=logger,isatty=true)
logger.debug("test")
coloredlogs.install(level=None,**kw)
isatty
–True
使用ColoredFormatter
,False
使用普通Formatter
(默认为使用terminal_supports_colors()
自动检测)。>
https://coloredlogs.readthedocs.io/en/latest/api.html?highlight=isatty#coloredlogs.install
terminal_supports_colors
来自humanfriendly
,并且如果传递的流是TTY,则返回true。在GitHub Actions运行程序中,输出被重定向。
humanfriendly.terminal.terminal_supports_colors(stream=None)
检查流是否已连接到支持ANSI转义序列的终端。
参数:stream –要检查的流(类似文件的对象,默认为sys.stdout
)。
返回:True
,如果终端支持ANSI转义序列,否则返回False。
源代码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。