• Templates 模板:


    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() statement
    
    
    template() 语句是用于定义模板, 注意他是一个静态的语句,那意味着所有的模板是被定义当rsyslog 读取config文件的时候
    
    
    因此,模板不会受到模板或者配置嵌套的影响
    
    template(parameters)
    
    
    除了这个简单的语法, 列表模板(下面有描述) 支持一个扩展的语法:
    
    template(parameters) { list-descriptions }
    
    每个模板有一个参数名称, 指定模板的类型。
    
    名字参数必须是唯一的, 行为是无法预测的 如果它不是。
    
    
    类型参数 指定不同的模板类型,不同的模板类型简单的让不同的方式来指定模板内容。
    
    模板类型不会影响一个输出插件可用用它做什么。
    
    
    
        list
        subtree
        string
        plugin
    
    The 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="
    ")
        }
    
    常量语句:
    
    
    这个提供了一种方式来指定常量文本。文本是用于字面上的,
    
    它主要是用于基于文本的输出,因此 一些常量文本可以被包含
    
    比如,如果一个复杂的模板是创建用于文件输出,一个通常需要完成它通过一个新行,
    
    可以通过一个常量语句介绍。
    
    template(name="outfmt" type="list") {
        property(name="$!usr!msgnum")
        constant(value="
    ")
    }
    
    
    下面的转义序列被认为是在常量文本中:
    
    1. \  简单的反斜杠
    
    2.
     
    
    注意 如果一个不支持的字符跟着一个反斜杠,这是对待为一个错误,行为是不可预测的
    
    
    避免 文本模板的使用 对于基于文本输出和结构使用,如果你要支持一些常量文本
    
    例如 mongodb,你必须包含一个outname,这里可以看到:
    
    template(name="outfmt" type="list") {
        property(name="$!usr!msgnum")
        constant(value="
    " 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%
    "
    
    
    $template tocFormat,"%msg%
    "
    
    
    注意 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%
    "
    
    $template TraditionalFileFormat,"%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%
    "
    
    $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``
    

  • 相关阅读:
    Java四种引用类型+ReferenceQueue+WeakHashMap
    浅谈怎样写好一篇(技术)博客?
    MySQL-5.7.14-WinX64安装配置详解
    网络编程梳理:Android网络基础知识复习
    Git时间:常用Git命令收集整理(持续更新)
    一些常见技术问题收集(二)持续更新
    开源库AndroidSwipeLayout分析(一),炫酷ItemView滑动呼出效果
    开源库AndroidSwipeLayout分析(二),SwipeLayout源码探究
    ES 基础操作
    pymongo
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350202.html
Copyright © 2020-2023  润新知