在 Ubuntu 系统中,syslog 通常使用 rsyslog 作为其实现。要为 syslog 消息自定义标签,您需要修改 rsyslog 配置文件并重新启动 rsyslog 服务。以下是具体步骤:
-
打开终端。
-
使用文本编辑器打开 rsyslog 配置文件。通常,该文件位于
/etc/rsyslog.conf
或/etc/rsyslog.d/50-default.conf
。例如,要使用 nano 编辑器打开默认配置文件,请运行以下命令:
sudo nano /etc/rsyslog.d/50-default.conf
- 在配置文件中找到以下行:
# Provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # Provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
在这些行之后,添加您想要的自定义标签。例如,要创建一个名为 “myapp” 的标签,请添加以下行:
local0.* /var/log/myapp.log & stop
这里,local0
是 syslog 设施代码,*
表示所有优先级级别。/var/log/myapp.log
是日志文件的路径。& stop
表示在将消息写入 myapp.log 文件后停止进一步处理。
-
保存并关闭配置文件。
-
重新启动 rsyslog 服务以应用更改:
sudo systemctl restart rsyslog
现在,您的应用程序可以使用自定义标签记录日志。例如,在 Python 中,您可以使用以下代码:
import logging logger = logging.getLogger('myapp') logger.setLevel(logging.INFO) handler = logging.FileHandler('/var/log/myapp.log') formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.info('This is an info message with the custom tag "myapp".')
这将在 /var/log/myapp.log
文件中记录带有自定义标签 “myapp” 的日志消息。