on  it road.com

模板:示例

以下示例定义了一个名为 class 的模板,该模板将 rsyslog 消息格式化以输出消息的时间戳、文本形式的工具、文本形式的优先级、主机名和消息文本,并以新行结束:

$template class, "Time: %timestamp%, Facility: %syslogfacilitytext%, Priority: %syslogpriority-text%, Hostname: %hostname%,
Message: %msg%\n"

要将模板用于 /var/log/logfile 消息,请按如下方式包含模板名称:

*.* /var/log/logfile;class

特性

我们可以使用模板内的属性来引用 rsyslog 消息的特定内容。
使用以下语法在模板中定义属性:

%PROPERTY_NAME[:FROM_CHAR:TO_CHAR:OPTION]%

字段描述如下:

字段作用
PROPERTY_NAME属性的名称
FROM_CHAR and TO_CHAR指定属性作用的字符范围
OPTION属性选项

可以在 http://www.rsyslog.com/doc/property_replacer.html 上找到可用属性和描述的列表。

  1. 以下属性表示 rsyslog 消息的整个消息文本:
%msg%
  1. 以下示例表示消息文本的前两个字符:
%msg:1:2%
  1. 以下属性表示 rsyslog 消息中的主机名:
%hostname%
  1. 以下属性代表文本形式的消息中的设施:
%syslogfacility-text%
rsyslog 模板

模板(Templates )修改和格式化由 rsyslog 生成的输出。
它们允许指定用户可能想要的任何格式。
它们还用于动态文件名生成。
以下是创建模板的语法:

$template TEMPLATE_NAME,"text %PROPERTY% text", [OPTION]

字段描述如下:

字段作用
$template定义模板的指令
TEMPLATE_NAME模板名称
"text"用引号括起来的实际模板文本
%PROPERTY%用百分号包围的特定消息内容
OPTION指定修改模板功能的选项

模板可用于生成动态文件名。
将属性指定为文件路径的一部分,以便为每个唯一属性创建一个新文件。
例如,使用 timegenerated 属性为每个 rsyslog 消息生成唯一的文件名:

$template DynamicFile,“/var/log/%timegenerated%-test.log”

在规则中指定模板名称以修改 rsyslog 输出。
动态文件由模板和问号 (?) 前缀表示。
例子:

*.* ?DynamicFile
日期:2020-09-17 00:14:41 来源:oir作者:oir