如何像控制台一样查看导出的带颜色日志?
格式化带ANSI颜色码的日志内容
首先,先把你重定向得到的原始日志(带ANSI转义码)用代码块展示,这样能清晰看到原始内容:
[32m[1m(INF)[0m /environment/converter: State map: [ 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18 ][0m [32m[1m(INF)[0m /environment/converter: Action map: [ -1, -1, -1, 0, 1, 2, 3, 4, 5 ][0m [32m[1m(INF)[0m PyEnv: Observation dims: 15[0m [32m[1m(INF)[0m PyEnv: Action dims: 6[0m Random seed No...
里面的[32m、[1m、[0m是ANSI转义码,分别对应绿色、加粗、重置格式的指令。要把这些日志转成易读的Markdown格式,可以这么处理:
清理并结构化后的日志
去掉转义码后,用加粗来对应原日志里的加粗绿色级别标识,再用列表整理每条日志:
- (INF) /environment/converter: State map: [ 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18 ]
- (INF) /environment/converter: Action map: [ -1, -1, -1, 0, 1, 2, 3, 4, 5 ]
- (INF) PyEnv: Observation dims: 15
- (INF) PyEnv: Action dims: 6
- Random seed No...
如果后续遇到不同级别的日志(比如错误(ERR)、警告(WARN)),还可以用不同格式区分:
- (ERR) 类日志:用块引用
>突出,比如> **(ERR)** 数据库连接失败 - (WARN) 类日志:用斜体标识,比如
* (WARN) 配置文件版本过低
另外,如果你想批量清理日志里的ANSI转义码,可以用这条命令行指令:
sed -r "s/\x1B\[[0-9;]*[mK]//g" file.log > clean_file.log
它会自动过滤掉所有转义码,生成干净的日志文件,之后再做Markdown格式化就更省心了。
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

