Bash Syslog-如何显示彩色消息?
我需要澄清的是,我不想给日志输出上色,我只对写入Bash Syslog-如何显示彩色消息?,bash,systemd,syslog,tail,ansi-escape,Bash,Systemd,Syslog,Tail,Ansi Escape,我需要澄清的是,我不想给日志输出上色,我只对写入syslog的程序输出感兴趣 下面是一个场景,我有一个运行脚本的systemdunit服务,它指示Bash中的256色 以下是服务单元文件: [Unit] Description=Bash Color Service [Service] Type=simple EnvironmentFile=/etc/environment ExecStart=/home/username/colors.sh StandardOutput=syslog Sta
syslog
的程序输出感兴趣
下面是一个场景,我有一个运行脚本的systemd
unit服务,它指示Bash中的256色
以下是服务单元文件:
[Unit]
Description=Bash Color Service
[Service]
Type=simple
EnvironmentFile=/etc/environment
ExecStart=/home/username/colors.sh
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=bashcolors
Restart=on-failure
RestartSec=10
User=username
Group=username
[Install]
WantedBy=multi-user.target
这是/home/username/colors.sh下的Bash脚本(摘自):
运行此脚本会向我的终端输出一些彩色输出,如下所示:
好的,现在来看看实际问题。当我运行该服务时,syslog输出确实包含转义颜色字符,但不以颜色显示。下面是tail-f/var/log/syslog
的一个片段输出,其中包含相关信息:
bashcolor[19892]: #033[48;5;202m 202 #033[0m#033[48;5;203m 203 #033[0m#033[48;5;204m 204 #033[0m#033[48;5;205m 205 #033[0m#033[48;5;206m 206 #033[0m#033[48;5;207m 207 #033[0m
bashcolor[19892]: #033[48;5;208m 208 #033[0m#033[48;5;209m 209 #033[0m#033[48;5;210m 210 #033[0m#033[48;5;211m 211 #033[0m#033[48;5;212m 212 #033[0m#033[48;5;213m 213 #033[0m
bashcolor[19892]: #033[48;5;214m 214 #033[0m#033[48;5;215m 215 #033[0m#033[48;5;216m 216 #033[0m#033[48;5;217m 217 #033[0m#033[48;5;218m 218 #033[0m#033[48;5;219m 219 #033[0m
bashcolor[19892]: #033[48;5;220m 220 #033[0m#033[48;5;221m 221 #033[0m#033[48;5;222m 222 #033[0m#033[48;5;223m 223 #033[0m#033[48;5;224m 224 #033[0m#033[48;5;225m 225 #033[0m
bashcolor[19892]: #033[48;5;226m 226 #033[0m#033[48;5;227m 227 #033[0m#033[48;5;228m 228 #033[0m#033[48;5;229m 229 #033[0m#033[48;5;230m 230 #033[0m#033[48;5;231m 231 #033[0m
bashcolor[19892]: #033[48;5;232m 232 #033[0m#033[48;5;233m 233 #033[0m#033[48;5;234m 234 #033[0m#033[48;5;235m 235 #033[0m#033[48;5;236m 236 #033[0m#033[48;5;237m 237 #033[0m
bashcolor[19892]: #033[48;5;238m 238 #033[0m#033[48;5;239m 239 #033[0m#033[48;5;240m 240 #033[0m#033[48;5;241m 241 #033[0m#033[48;5;242m 242 #033[0m#033[48;5;243m 243 #033[0m
bashcolor[19892]: #033[48;5;244m 244 #033[0m#033[48;5;245m 245 #033[0m#033[48;5;246m 246 #033[0m#033[48;5;247m 247 #033[0m#033[48;5;248m 248 #033[0m#033[48;5;249m 249 #033[0m
bashcolor[19892]: #033[48;5;250m 250 #033[0m#033[48;5;251m 251 #033[0m#033[48;5;252m 252 #033[0m#033[48;5;253m 253 #033[0m#033[48;5;254m 254 #033[0m#033[48;5;255m 255 #033[0m
到目前为止我已经尝试过的事情:
- 使用工具:
tail-f/var/log/syslog | ccze-A
echo-ne$(tail-f/var/log/syslog)
- 使用和
rainbow
实用程序而不是tail
默认情况下,系统日志转义ansi颜色代码。要启用,请将以下内容添加到
/etc/rsyslog.conf
$EscapeControlCharactersOnReceive off
然后重新启动rsyslog
和您的服务
$ systemctl restart rsyslog
$ systemctl restart my_color_service
就是这样!很简单,非常感谢。正是我想要的。
$ systemctl restart rsyslog
$ systemctl restart my_color_service