Templates 模板:

来源:互联网 发布:软件项目管理精品课程 编辑:程序博客网 时间:2024/04/29 07:09
Templates 模板:########################温金$template wj-flow01,"/data01/applog_backup/winfae_log/wj-flow01-catalina.out.%$year%-%$month%-%$day%"       #定义TC:日志存放路径$template wj-flow02,"/data01/applog_backup/winfae_log/wj-flow02-catalina.out.%$year%-%$month%-%$day%"       #定义TC:日志存放路径:syslogtag,isequal,"wj-flow01"  -?wj-flow01;tocFormat模板是rsyslog 的关键特征,它们允许指定任何用户需要的格式。它们也可以用于动态文件名称生成, 每个output 在rsyslog 使用模板 - 使用真实的文件,用户消息等等。数据库写期望它的模板可以被一个合适的SQL语句,这个是高度自定义的。你可以告诉要求左右这些工作当没有指定模板的时候)答案是简单的,尽管模板兼容stock syslogd 格式是硬编码到rsyslogd.这样如果没有模板指定,我们使用那些硬编码模板中的一个Templates  是通过template() 语句指定,它们也可以通过$template legacy statements. 指定注意: 模板的关键元素是rsyslog 属性The template() statementtemplate() 语句是用于定义模板, 注意他是一个静态的语句,那意味着所有的模板是被定义当rsyslog 读取config文件的时候因此,模板不会受到模板或者配置嵌套的影响template(parameters)除了这个简单的语法, 列表模板(下面有描述) 支持一个扩展的语法:template(parameters) { list-descriptions }每个模板有一个参数名称, 指定模板的类型。名字参数必须是唯一的, 行为是无法预测的 如果它不是。类型参数 指定不同的模板类型,不同的模板类型简单的让不同的方式来指定模板内容。模板类型不会影响一个输出插件可用用它做什么。    list    subtree    string    pluginThe various types are described below.list:在这种情况下, 模板是通过一个常量和变量语句的列表生成的。那些安装模板说明在大括号里。这种类型也主要是使用结构输出,像ommongodb然而, 它也很好的和基于文本的输出工作,我们推荐使用这个模式如果 更加复杂的属性体检。在这种情况下, 基于列表的模板语法是更加清晰的相比简单的基于字符串的列表模板包含列表Header(type="list") 是通过一个常量和属性语句,在大括号里表示模板语句, 正如名字所说,常量语句描述常量文本和属性描述属性访问。有很多选项来属性,下面有描述。很多那些选项是用于提取特定属性的内存或者来修改文本得到template(name="tpl1" type="list") {    constant(value="Syslog MSG is: '")    property(name="msg")    constant(value="', ")    property(name="timereported" dateFormat="rfc3339" caseConversion="lower")    constant(value="\n")    }常量语句:这个提供了一种方式来指定常量文本。文本是用于字面上的,它主要是用于基于文本的输出,因此 一些常量文本可以被包含比如,如果一个复杂的模板是创建用于文件输出,一个通常需要完成它通过一个新行,可以通过一个常量语句介绍。template(name="outfmt" type="list") {    property(name="$!usr!msgnum")    constant(value="\n")}下面的转义序列被认为是在常量文本中:1. \\  简单的反斜杠2.\n 注意 如果一个不支持的字符跟着一个反斜杠,这是对待为一个错误,行为是不可预测的避免 文本模板的使用 对于基于文本输出和结构使用,如果你要支持一些常量文本例如 mongodb,你必须包含一个outname,这里可以看到:template(name="outfmt" type="list") {    property(name="$!usr!msgnum")    constant(value="\n" outname="IWantThisInMyDB")}常量语句支持以下参数:值 常量值来使用outname  输出域名字属性声明 此语句是用于包含属性文件,它可以访问所有的属性。选项允许来指定选择属性的部分或者修改它 它支持下面的参数:传统格式:在rsyslog v6之前, 你需要使用$template 语句来配置模板,它们提供了等价于字符和基于插件的模板,传统的语句在V7继续可以用,然而我们推荐避免传统格式用于新的写入到配置文件,传统的和当前配置语句可以共存于相同的配置文件The general format is$template name,param[,options]########################温金$template wj-flow01,"/data01/applog_backup/winfae_log/wj-flow01-catalina.out.%$year%-%$month%-%$day%"       #定义TC:日志存放路径"name" 是模板名字和"param" 是一个简单的参数 指定模板内容,选项部分是用于设置模板选项字符串:参数是同样的字符串 使用当前样式的格式你指定在字符串参数$template strtpl,"PRI: %pri%, MSG: %msg%\n"$template tocFormat,"%msg%\n"注意 list 模板 是不可用的在传统格式里, 因此你需要使用复杂属性替换结构来做复杂的事情保留模板名字:模板名字以 “RSYSLOG_” 开头的是被保留用于rsyslog使用,不要使用它们,否则 你可能受到一个冲突( 不可预知的行为)传统的基于字符串的模板例子:这个章节提供一些默认模板在 legacy format, 用于rsyslog v6之前的版本。注意 这个格式仍旧被支持,因此没有必要硬升级现在的配置。然而,它是强力推荐 传统的结构是不被使用了当制作新的模板。注意每个 $template statement 是在一个单独的行,但是大概跨越多行来显示通过你的浏览器。行是通过空行分隔,记录, 换行是重要的在 legacy format.$template FileFormat,"%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"$template TraditionalFileFormat,"%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"$template ForwardFormat,"<%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%"$template TraditionalForwardFormat,"<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%"$template StdSQLFormat,"insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%HOSTNAME%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL``

0 0