linux

Linux syslog日志格式自定义方法

小樊
45
2025-10-01 23:55:45
栏目: 智能运维

在Linux系统中,syslog日志格式可以通过修改/etc/rsyslog.conf(对于rsyslog)或/etc/syslog-ng/syslog-ng.conf(对于syslog-ng)文件来自定义。以下是自定义syslog日志格式的方法:

对于rsyslog:

  1. 打开/etc/rsyslog.conf文件:
sudo nano /etc/rsyslog.conf
  1. 在文件中找到以下行:
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

或者

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
  1. 在这两行之前添加以下内容以自定义日志格式:
$template CustomFormat,"%timegenerated% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"

这将创建一个名为CustomFormat的新模板,其中包含时间戳、syslog标签和消息。您可以根据需要修改此模板。

  1. 在文件中找到以下行:
*.* action(type="omfile" file="/var/log/syslog")
  1. 将其替换为以下内容以应用自定义格式:
*.* action(type="omfile" file="/var/log/syslog" template="CustomFormat")
  1. 保存并关闭文件。

  2. 重启rsyslog服务以应用更改:

sudo systemctl restart rsyslog

对于syslog-ng:

  1. 打开/etc/syslog-ng/syslog-ng.conf文件:
sudo nano /etc/syslog-ng/syslog-ng.conf
  1. 在文件中找到以下行:
source s_network { udp(ip(0.0.0.0) port(514)); tcp(ip(0.0.0.0) port(514)); };
  1. 在这两行之前添加以下内容以自定义日志格式:
template t_custom_format { template("${ISODATE} ${HOST} ${PROGRAM}: ${MSG}\n"); };

这将创建一个名为t_custom_format的新模板,其中包含ISO日期、主机名、程序名和消息。您可以根据需要修改此模板。

  1. 在文件中找到以下行:
destination d_network { file("/var/log/syslog"); };
  1. 将其替换为以下内容以应用自定义格式:
destination d_network { file("/var/log/syslog" template(t_custom_format)); };
  1. 保存并关闭文件。

  2. 重启syslog-ng服务以应用更改:

sudo systemctl restart syslog-ng

现在,您的Linux系统应该使用自定义的syslog日志格式记录消息。

0
看了该问题的人还看了