dwww Home | Manual pages | Find package

RSYSLOG.CONF(5)           Linux System Administration          RSYSLOG.CONF(5)

NAME
       rsyslog.conf - rsyslogd(8) configuration file

DESCRIPTION
       The  rsyslog.conf  file  is  the  main configuration file for the rsys-
       logd(8) which logs system messages on *nix systems.  This  file  speci-
       fies  rules for logging.  For special features see the rsyslogd(8) man-
       page. Rsyslog.conf is backward-compatible with  sysklogd's  syslog.conf
       file.  So  if you migrate from sysklogd you can rename it and it should
       work.

       Note that this version of rsyslog ships with extensive documentation in
       HTML format.  This is provided in the ./doc subdirectory  and  probably
       in  a separate package if you installed rsyslog via a packaging system.
       To use rsyslog's advanced features, you need to look at the HTML  docu-
       mentation, because the man pages only cover basic aspects of operation.

MODULES
       Rsyslog  has  a modular design. Consequently, there is a growing number
       of modules. See the HTML documentation for their full description.

       omsnmp SNMP trap output module

       omgssapi
              Output module for GSS-enabled syslog

       ommysql
              Output module for MySQL

       omrelp Output module for the reliable RELP protocol  (prevents  message
              loss).  For details, see below at imrelp and the HTML documenta-
              tion.  It can be used like this:

              *.*  :omrelp:server:port

              *.*  :omrelp:192.168.0.1:2514 # actual sample

       ompgsql
              Output module for PostgreSQL

       omlibdbi
              Generic  database  output  module  (Firebird/Interbase,  MS SQL,
              Sybase, SQLite, Ingres, Oracle, mSQL)

       imfile Input module for text files

       imudp  Input plugin for UDP syslog. Replaces the deprecated -r  option.
              Can be used like this:

              $ModLoad imudp

              $UDPServerRun 514

       imtcp  Input  plugin  for  plain TCP syslog. Replaces the deprecated -t
              option. Can be used like this:

              $ModLoad imtcp

              $InputTCPServerRun 514

       imrelp Input plugin for the RELP protocol. RELP can be used instead  of
              UDP  or  plain TCP syslog to provide reliable delivery of syslog
              messages. Please note that plain TCP  syslog  does  NOT  provide
              truly reliable delivery, with it messages may be lost when there
              is a connection problem or the server shuts down.  RELP prevents
              message loss in those cases.  It can be used like this:

              $ModLoad imrelp

              $InputRELPServerRun 2514

       imgssapi
              Input plugin for plain TCP and GSS-enable syslog

       immark Support for mark messages

       imklog Kernel logging. To include kernel log messages, you need to do

              $ModLoad imklog

              Please  note  that  the  klogd daemon is no longer necessary and
              consequently no longer provided by the rsyslog package.

       imuxsock
              Unix sockets, including the system log socket. You need to spec-
              ify

              $ModLoad imuxsock

              in order to receive log messages from  local  system  processes.
              This  config  directive should only left out if you know exactly
              what you are doing.

BASIC STRUCTURE
       Lines starting with a hash mark ('#')  and  empty  lines  are  ignored.
       Rsyslog.conf  should  contain following sections (sorted by recommended
       order in file):

       Global directives
              Global directives set some global properties  of  whole  rsyslog
              daemon,  for  example  size of main message queue ($MainMessage-
              QueueSize), loading external modules ($ModLoad) and so on.   All
              global  directives  need  to be specified on a line by their own
              and must start with a dollar-sign. The complete list  of  global
              directives  can  be found in HTML documentation in doc directory
              or online on web pages.

       Templates
              Templates allow you to specify format  of  the  logged  message.
              They  are  also used for dynamic file name generation. They have
              to be defined before they are used in rules. For more info about
              templates see TEMPLATES section of this manpage.

       Output channels
              Output channels provide an umbrella for any type of output  that
              the  user  might  want.  They have to be defined before they are
              used in rules. For more info about output  channels  see  OUTPUT
              CHANNELS section of this manpage.

       Rules (selector + action)
              Every  rule line consists of two fields, a selector field and an
              action field. These two fields are  separated  by  one  or  more
              spaces or tabs. The selector field specifies a pattern of facil-
              ities and priorities belonging to the specified action.

SELECTORS
       The selector field itself again consists of two parts, a facility and a
       priority,  separated by a period ('.'). Both parts are case insensitive
       and can also be specified as decimal numbers, but don't  do  that,  you
       have been warned.  Both facilities and priorities are described in sys-
       log(3). The names mentioned below correspond to the similar LOG_-values
       in /usr/include/syslog.h.

       The  facility  is  one of the following keywords: auth, authpriv, cron,
       daemon, kern, lpr, mail, mark, news, security (same as  auth),  syslog,
       user,  uucp  and local0 through local7. The keyword security should not
       be used anymore and mark is only for internal use and therefore  should
       not be used in applications.  Anyway, you may want to specify and redi-
       rect  these  messages  here.  The facility specifies the subsystem that
       produced the message, i.e. all mail programs log with the mail facility
       (LOG_MAIL) if they log using syslog.

       The priority is one of the following keywords, in ascending order:  de-
       bug, info, notice, warning, warn (same as warning), err, error (same as
       err),  crit,  alert,  emerg, panic (same as emerg). The keywords error,
       warn and panic are deprecated and should not be used anymore. The  pri-
       ority defines the severity of the message.

       The  behavior  of  the original BSD syslogd is that all messages of the
       specified priority and higher are logged according to the given action.
       Rsyslogd behaves the same, but has some extensions.

       In addition to the above mentioned names  the  rsyslogd(8)  understands
       the  following  extensions: An asterisk ('*') stands for all facilities
       or all priorities, depending on where it is used (before or  after  the
       period). The keyword none stands for no priority of the given facility.

       You  can  specify multiple facilities with the same priority pattern in
       one statement using the comma (',') operator. You may specify  as  much
       facilities  as you want. Remember that only the facility part from such
       a statement is taken, a priority part would be skipped.

       Multiple selectors may be specified for a single action using the semi-
       colon (';') separator. Remember that  each  selector  in  the  selector
       field  is  capable to overwrite the preceding ones. Using this behavior
       you can exclude some priorities from the pattern.

       Rsyslogd has a syntax extension to the original BSD source, that  makes
       its use more intuitively. You may precede every priority with an equals
       sign  ('=')  to  specify  only  this single priority and not any of the
       above. You may also (both is valid, too) precede the priority  with  an
       exclamation mark ('!') to ignore all that priorities, either exact this
       one  or  this  and any higher priority. If you use both extensions then
       the exclamation mark must occur before the equals sign, just use it in-
       tuitively.

       However, please note that there are some restrictions over  the  tradi-
       tional  BSD syslog behaviour. These restrictions stem back to sysklogd,
       exist probably since at least the 1990's and as such have  always  been
       in rsyslog.

       Namely, in BSD syslogd you can craft a selector like this:

       *.debug;local6.err

       The  intent is to log all facilities at debug or higher, except for lo-
       cal6, which should only log at err or higher.

       Unfortunately, local6.err will permit error severity  and  higher,  but
       will not exclude lower severity messages from facility local6.

       As  an  alternative, you can explicitly exclude all severities that you
       do not want to match. For the above case, this selector  is  equivalent
       to the BSD syslog selector:

       *.debug;local6.!=info;local6.!=notice;local6.!=warn

       An  easier  approach  is  probably  to do if ... then based matching in
       script.

ACTIONS
       The action field of a rule describes what to do with  the  message.  In
       general,  message  content  is written to a kind of "logfile". But also
       other actions might be done, like writing to a database table  or  for-
       warding to another host.

   Regular file
       Typically  messages are logged to real files. The file has to be speci-
       fied with full pathname, beginning with a slash ('/').

       Example:
              *.*     /var/log/traditionalfile.log;RSYSLOG_TraditionalFileFor-
              mat      # log to a file in the traditional format

       Note: if you would like to use high-precision timestamps  in  your  log
       files,  just  remove the ";RSYSLOG_TraditionalFormat". That will select
       the default template, which, if not changed, uses RFC 3339 timestamps.

       Example:
              *.*     /var/log/file.log # log to a  file  with  RFC3339  time-
              stamps

       By default, files are not synced after each write. To enable syncing of
       log files globally, use either the "$ActionFileEnableSync" directive or
       the  "sync"  parameter to omfile. Enabling this option degrades perfor-
       mance and it is advised not to enable syncing unless you know what  you
       are  doing.   To selectively disable syncing for certain files, you may
       prefix the file path with a minus sign ("-").

   Named pipes
       This version of rsyslogd(8) has support for  logging  output  to  named
       pipes  (fifos).  A  fifo or named pipe can be used as a destination for
       log messages by prepending a pipe symbol ('|') to the name of the file.
       This is handy for debugging. Note that the fifo must  be  created  with
       the mkfifo(1) command before rsyslogd(8) is started.

   Terminal and console
       If  the file you specified is a tty, special tty-handling is done, same
       with /dev/console.

   Remote machine
       There are three ways to forward message: the traditional UDP transport,
       which is extremely lossy but standard, the plain  TCP  based  transport
       which  loses  messages  only  during  certain  situations but is widely
       available and the RELP transport which does not lose  messages  but  is
       currently available only as part of rsyslogd 3.15.0 and above.

       To  forward messages to another host via UDP, prepend the hostname with
       the at sign ("@").  To forward it via plain tcp, prepend two  at  signs
       ("@@").  To forward via RELP, prepend the string ":omrelp:" in front of
       the hostname.

       Example:
              *.* @192.168.0.1

       In the example above, messages are forwarded via  UDP  to  the  machine
       192.168.0.1, the destination port defaults to 514. Due to the nature of
       UDP,  you  will  probably lose some messages in transit.  If you expect
       high traffic volume, you can expect to lose a quite  noticeable  number
       of messages (the higher the traffic, the more likely and severe is mes-
       sage loss).

       Sockets  for forwarded messages can be bound to a specific device using
       the "device" option for the omfwd module.

       Example:
              action(type="omfwd" Target="192.168.0.1" Device="eth0"  Port=514
              Protocol="udp")

       In  the  example  above,  messages are forwarded via UDP to the machine
       192.168.0.1 at port 514 over the device eth0. TCP can be used  by  set-
       ting Protocol to "tcp" in the above example.

       For  Linux  with  VRF support, the device option is used to specify the
       VRF to send messages.

       If you would like to prevent message loss, use RELP:
              *.* :omrelp:192.168.0.1:2514

       Note that a port number was given as there  is  no  standard  port  for
       relp.

       Keep in mind that you need to load the correct input and output plugins
       (see "Modules" above).

       Please  note  that rsyslogd offers a variety of options in regarding to
       remote forwarding. For full details, please see the HTML documentation.

   List of users
       Usually critical messages are also directed to  ``root''  on  that  ma-
       chine.  You  can  specify a list of users that shall get the message by
       simply writing ":omusrmsg:" followed by the login name. You may specify
       more than one user by separating them with  commas  (',').  If  they're
       logged    in    they    get   the   message   (for   example:   ":omus-
       rmsg:root,user1,user2").

   Everyone logged on
       Emergency messages often go to all users  currently  online  to  notify
       them  that  something  strange is happening with the system. To specify
       this wall(1)-feature use an ":omusrmsg:*".

   Database table
       This allows logging of the message to a database table.  By default,  a
       MonitorWare-compatible  schema  is  required  for this to work. You can
       create that schema with the createDB.SQL file that came with the  rsys-
       log  package.  You  can  also use any other schema of your liking - you
       just need to define a proper template and assign this template  to  the
       action.

       See the HTML documentation for further details on database logging.

   Discard
       If  the  discard action is carried out, the received message is immedi-
       ately discarded. Discard can be highly effective if you want to  filter
       out some annoying messages that otherwise would fill your log files. To
       do that, place the discard actions early in your log files.  This often
       plays  well  with  property-based  filters, giving you great freedom in
       specifying what you do not want.

       Discard is just the single 'stop' command with no further parameters.

       Example:
              *.*   stop      # discards everything.

   Output channel
       Binds an output channel definition (see there for details) to this  ac-
       tion.  Output  channel  actions  must  start with a $-sign, e.g. if you
       would like to bind your output channel definition  "mychannel"  to  the
       action,  use "$mychannel". Output channels support template definitions
       like all all other actions.

   Shell execute
       This executes a program in a subshell. The program is passed  the  tem-
       plate-generated  message  as  the  only command line parameter. Rsyslog
       waits until the program terminates and only then continues to run.

       Example:
              ^program-to-execute;template

       The program-to-execute can be any valid  executable.  It  receives  the
       template string as a single parameter (argv[1]).

FILTER CONDITIONS
       Rsyslog offers three different types "filter conditions":
          * "traditional" severity and facility based selectors
          * property-based filters
          * expression-based filters

   Selectors
       Selectors  are  the traditional way of filtering syslog messages.  They
       have been kept in rsyslog with their original  syntax,  because  it  is
       well-known,  highly  effective  and  also needed for compatibility with
       stock syslogd configuration files. If you just need to filter based  on
       priority and facility, you should do this with selector lines. They are
       not second-class citizens in rsyslog and offer the best performance for
       this job.

   Property-Based Filters
       Property-based filters are unique to rsyslogd. They allow one to filter
       on any property, like HOSTNAME, syslogtag and msg.

       A property-based filter must start with a colon in column 0. This tells
       rsyslogd  that it is the new filter type. The colon must be followed by
       the property name, a comma, the name of the compare operation to  carry
       out,  another  comma  and then the value to compare against. This value
       must be quoted.  There can be spaces and tabs between the commas. Prop-
       erty names and compare operations are case-sensitive, so  "msg"  works,
       while  "MSG"  is  an  invalid property name. In brief, the syntax is as
       follows:

              :property, [!]compare-operation, "value"

       The following compare-operations are currently supported:

              contains
                     Checks if the string provided in value  is  contained  in
                     the property

              isequal
                     Compares  the  "value"  string  provided and the property
                     contents. These two  values  must  be  exactly  equal  to
                     match.

              startswith
                     Checks  if the value is found exactly at the beginning of
                     the property value

              regex
                     Compares the property against the  provided  regular  ex-
                     pression.

   Expression-Based Filters
       See the HTML documentation for this feature.

TEMPLATES
       Every  output  in  rsyslog  uses templates - this holds true for files,
       user messages and so on. Templates compatible with  the  stock  syslogd
       formats  are  hardcoded  into rsyslogd. If no template is specified, we
       use one of these hardcoded templates. Search for  "template_"  in  sys-
       logd.c and you will find the hardcoded ones.

       A  template  consists  of a template directive, a name, the actual tem-
       plate text and optional options. A sample is:

              $template   MyTemplateName,"\7Text    %property%    some    more
              text\n",<options>

       The  "$template"  is the template directive. It tells rsyslog that this
       line contains a template. The backslash is an escape character. For ex-
       ample, \7 rings the bell (this is an ASCII value), \n is  a  new  line.
       The set in rsyslog is a bit restricted currently.

       All  text  in  the template is used literally, except for things within
       percent signs. These are properties and allow you access  to  the  con-
       tents  of  the syslog message. Properties are accessed via the property
       replacer and it can for example pick a substring  or  do  date-specific
       formatting.  More on this is the PROPERTY REPLACER section of this man-
       page.

       To escape:
          % = \%
          \ = \\ --> '\' is used to escape (as in C)
       $template   TraditionalFormat,"%timegenerated%   %HOSTNAME%    %syslog-
       tag%%msg%\n"

       Properties  can be accessed by the property replacer (see there for de-
       tails).

       Please note that templates can also by used to generate selector  lines
       with  dynamic file names.  For example, if you would like to split sys-
       log messages from different hosts to different files  (one  per  host),
       you can define the following template:

              $template DynFile,"/var/log/system-%HOSTNAME%.log"

       This  template  can then be used when defining an output selector line.
       It will result in something like "/var/log/system-localhost.log"

   Template options
       The <options> part is optional. It carries options influencing the tem-
       plate as whole.  See details below. Be sure NOT to mistake template op-
       tions with property options - the later ones are processed by the prop-
       erty replacer and apply to a SINGLE property, only (and not  the  whole
       template).

       Template options are case-insensitive. Currently defined are:

              sql    format  the  string suitable for a SQL statement in MySQL
                     format. This will replace single  quotes  ("'")  and  the
                     backslash  character  by their backslash-escaped counter-
                     part ("ยด" and "\") inside each field. Please note that in
                     MySQL configuration, the NO_BACKSLASH_ESCAPES  mode  must
                     be  turned  off  for this format to work (this is the de-
                     fault).

              stdsql format the string suitable for a SQL statement that is to
                     be sent to a standards-compliant sql  server.  This  will
                     replace  single  quotes ("'") by two single quotes ("''")
                     inside each field.  You must  use  stdsql  together  with
                     MySQL  if in MySQL configuration the NO_BACKSLASH_ESCAPES
                     is turned on.

       Either the sql or stdsql option MUST be specified when  a  template  is
       used for writing to a database, otherwise injection might occur. Please
       note  that  due  to the unfortunate fact that several vendors have vio-
       lated the sql standard and introduced their own escape methods,  it  is
       impossible to have a single option doing all the work.  So you yourself
       must make sure you are using the right format.  If you choose the wrong
       one, you are still vulnerable to sql injection.

       Please  note  that  the database writer *checks* that the sql option is
       present in the template. If it is not present, the write  database  ac-
       tion  is  disabled.  This is to guard you against accidental forgetting
       it and then becoming vulnerable to SQL injection. The  sql  option  can
       also  be useful with files - especially if you want to import them into
       a database on another machine for performance reasons. However, do  NOT
       use  it  if you do not have a real need for it - among others, it takes
       some toll on the processing time. Not much, but on a really busy system
       you might notice it ;)

       The default template for the write to database action has the  sql  op-
       tion set.

   Template examples
       Please  note  that  the samples are split across multiple lines. A tem-
       plate MUST NOT actually be split across multiple lines.

       A template that resembles traditional syslogd file output:

              $template TraditionalFormat,"%timegenerated% %HOSTNAME%
              %syslogtag%%msg:::drop-last-lf%\n"

       A template that tells you a little more about the message:

              $template precise,"%syslogpriority%,%syslogfacility%,%timegener-
              ated%,%HOSTNAME%,
              %syslogtag%,%msg%\n"

       A template for RFC 3164 format:

              $template  RFC3164fmt,"<%PRI%>%TIMESTAMP%  %HOSTNAME%   %syslog-
              tag%%msg%"

       A template for the format traditionally used for user messages:

              $template usermsg," XXXX%syslogtag%%msg%\n\r"

       And a template with the traditional wall-message format:

              $template   wallmsg,"\r\n\7Message  from  syslogd@%HOSTNAME%  at
              %timegenerated%"

       A template that can be used for writing to a database (please note  the
       SQL template option)

              $template MySQLInsert,"insert iut, message, receivedat values
              ('%iut%', '%msg:::UPPERCASE%', '%timegenerated:::date-mysql%')
              into systemevents\r\n", SQL

              NOTE 1: This template is embedded into core application under
              name StdDBFmt , so you don't need to define it.

              NOTE 2: You have to have MySQL module installed to use this tem-
              plate.

OUTPUT CHANNELS
       Output Channels are a new concept first introduced in rsyslog 0.9.0. As
       of  this writing, it is most likely that they will be replaced by some-
       thing different in the future.  So if you  use  them,  be  prepared  to
       change  you  configuration  file syntax when you upgrade to a later re-
       lease.

       Output channels are defined via an $outchannel directive.  It's  syntax
       is as follows:

              $outchannel name,file-name,max-size,action-on-max-size

       name is the name of the output channel (not the file), file-name is the
       file  name  to be written to, max-size the maximum allowed size and ac-
       tion-on-max-size a command to be issued when the max size  is  reached.
       This  command always has exactly one parameter. The binary is that part
       of action-on-max-size before the first space, its parameter  is  every-
       thing behind that space.

       Keep  in  mind  that $outchannel just defines a channel with "name". It
       does not activate it.  To do so, you must use a selector line (see  be-
       low).  That selector line includes the channel name plus ":omfile:$" in
       front of it. A sample might be:

              *.* :omfile:$mychannel

PROPERTY REPLACER
       The property replacer is a core component in rsyslogd's output  system.
       A  syslog  message has a number of well-defined properties (see below).
       Each of this properties can be accessed and manipulated by the property
       replacer. With it, it is easy to use only part of a property  value  or
       manipulate the value, e.g. by converting all characters to lower case.

   Accessing Properties
       Syslog  message properties are used inside templates. They are accessed
       by putting them between percent signs. Properties can  be  modified  by
       the property replacer. The full syntax is as follows:

              %propname:fromChar:toChar:options%

       propname is the name of the property to access.  It is case-sensitive.

   Available Properties
       msg    the MSG part of the message (aka "the message" ;))

       rawmsg the  message  exactly as it was received from the socket. Should
              be useful for debugging.

       HOSTNAME
              hostname from the message

       FROMHOST
              hostname of the system the message was received from (in a relay
              chain, this is the system immediately in front  of  us  and  not
              necessarily the original sender)

       syslogtag
              TAG from the message

       programname
              the "static" part of the tag, as defined by BSD syslogd. For ex-
              ample, when TAG is "named[12345]", programname is "named".

       PRI    PRI part of the message - undecoded (single value)

       PRI-text
              the  PRI  part  of  the  message  in  a textual form (e.g. "sys-
              log.info")

       IUT    the monitorware InfoUnitType - used when talking to  a  Monitor-
              Ware backend (also for phpLogCon)

       syslogfacility
              the facility from the message - in numerical form

       syslogfacility-text
              the facility from the message - in text form

       syslogseverity
              severity from the message - in numerical form

       syslogseverity-text
              severity from the message - in text form

       timegenerated
              timestamp  when the message was RECEIVED. Always in high resolu-
              tion

       timereported
              timestamp from the message. Resolution depends on what was  pro-
              vided in the message (in most cases, only seconds)

       TIMESTAMP
              alias for timereported

       PROTOCOL-VERSION
              The  contents  of  the  PROTOCOL-VERSION  field  from IETF draft
              draft-ietf-syslog-protocol

       STRUCTURED-DATA
              The contents of the STRUCTURED-DATA field from IETF draft draft-
              ietf-syslog-protocol

       APP-NAME
              The contents of the APP-NAME field from IETF  draft  draft-ietf-
              syslog-protocol

       PROCID The contents of the PROCID field from IETF draft draft-ietf-sys-
              log-protocol

       MSGID  The  contents of the MSGID field from IETF draft draft-ietf-sys-
              log-protocol

       $NOW   The current date stamp in the format YYYY-MM-DD

       $YEAR  The current year (4-digit)

       $MONTH The current month (2-digit)

       $DAY   The current day of the month (2-digit)

       $HOUR  The current hour in military (24 hour) time (2-digit)

       $MINUTE
              The current minute (2-digit)

       Properties starting with a  $-sign  are  so-called  system  properties.
       These do NOT stem from the message but are rather internally-generated.

   Character Positions
       FromChar and toChar are used to build substrings. They specify the off-
       set  within the string that should be copied. Offset counting starts at
       1, so if you need to obtain the first 2 characters of the message text,
       you can use this syntax: "%msg:1:2%". If you do  not  wish  to  specify
       from and to, but you want to specify options, you still need to include
       the  colons. For example, if you would like to convert the full message
       text to lower case, use "%msg:::lowercase%". If you would like  to  ex-
       tract from a position until the end of the string, you can place a dol-
       lar-sign  ("$") in toChar (e.g. %msg:10:$%, which will extract from po-
       sition 10 to the end of the string).

       There is also support for regular expressions.  To use them,  you  need
       to  place  a  "R" into FromChar.  This tells rsyslog that a regular ex-
       pression instead of position-based extraction is  desired.  The  actual
       regular expression must then be provided in toChar. The regular expres-
       sion  must be followed by the string "--end". It denotes the end of the
       regular expression and will not become part of it.  If  you  are  using
       regular  expressions, the property replacer will return the part of the
       property text that matches the regular expression.  An  example  for  a
       property    replacer   sequence   with   a   regular   expression   is:
       "%msg:R:.*Sev:. \(.*\) \[.*--end%"

       Also, extraction can be done based on so-called  "fields".  To  do  so,
       place  a  "F"  into FromChar. A field in its current definition is any-
       thing that is delimited by a delimiter character. The delimiter by  de-
       fault  is  TAB  (US-ASCII  value  9). However, if can be changed to any
       other US-ASCII character by specifying a comma and the decimal US-ASCII
       value of the delimiter immediately after the "F". For example,  to  use
       comma  (",") as a delimiter, use this field specifier: "F,44".  If your
       syslog data is delimited, this is a quicker way  to  extract  than  via
       regular  expressions  (actually,  a *much* quicker way). Field counting
       starts at 1. Field zero is accepted, but will always lead to  a  "field
       not  found"  error.  The same happens if a field number higher than the
       number of fields in the property is requested. The field number must be
       placed in the "ToChar" parameter. An example where the 3rd  field  (de-
       limited  by  TAB)  from  the  msg  property is extracted is as follows:
       "%msg:F:3%".  The  same  example  with  semicolon   as   delimiter   is
       "%msg:F,59:3%".

       Please note that the special characters "F" and "R" are case-sensitive.
       Only  upper  case  works, lower case will return an error. There are no
       white spaces permitted inside the sequence (that  will  lead  to  error
       messages and will NOT provide the intended result).

   Property Options
       Property options are case-insensitive. Currently, the following options
       are defined:

       uppercase
              convert property to lowercase only

       lowercase
              convert property text to uppercase only

       drop-last-lf
              The last LF in the message (if any), is dropped. Especially use-
              ful for PIX.

       date-mysql
              format as mysql date

       date-rfc3164
              format as RFC 3164 date

       date-rfc3339
              format as RFC 3339 date

       escape-cc
              replace control characters (ASCII value 127 and values less then
              32)  with an escape sequence. The sequence is "#<charval>" where
              charval is the 3-digit decimal value of the  control  character.
              For example, a tabulator would be replaced by "#009".

       space-cc
              replace control characters by spaces

       drop-cc
              drop control characters - the resulting string will neither con-
              tain control characters, escape sequences nor any other replace-
              ment character like space.

QUEUED OPERATIONS
       Rsyslogd supports queued operations to handle offline outputs (like re-
       mote  syslogd's or database servers being down). When running in queued
       mode, rsyslogd buffers messages to memory and optionally to disk (on an
       as-needed basis). Queues survive rsyslogd restarts.

       It is highly suggested to use remote forwarding and database writing in
       queued mode, only.

       To learn more about queued operations, see the HTML documentation.

FILES
       /etc/rsyslog.conf
              Configuration file for rsyslogd

SEE ALSO
       rsyslogd(8), logger(1), syslog(3)

       The complete documentation can be found in the doc folder of the  rsys-
       log distribution or online at

              https://www.rsyslog.com/doc/

       Please  note that the man page reflects only a subset of the configura-
       tion options. Be sure to read the HTML documentation for  all  features
       and  details.  This  is  especially vital if you plan to set up a more-
       then-extremely-simple system.

AUTHORS
       rsyslogd is taken from sysklogd sources, which have been heavily  modi-
       fied by Rainer Gerhards (rgerhards@adiscon.com) and others.

Version 7.2.0                   22 October 2012                RSYSLOG.CONF(5)

Generated by dwww version 1.16 on Tue Dec 16 17:18:29 CET 2025.