Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
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 rsyslogd(8)
     which logs system messages on *nix systems.  This file specifies rules  for
     logging.  For special features see the rsyslogd(8) manpage. 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 documentation,
     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 documentation.
	    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  op-
	    tion. 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 conse-
	    quently no longer provided by the rsyslog package.

     imuxsock
	    Unix sockets, including the system log socket. You need to specify

	    $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.   Rsys-
     log.conf  should contain following sections (sorted by recommended order in
     file):

     Global directives
	    Global directives set some global properties of whole  rsyslog  dae-
	    mon, for example size of main message queue ($MainMessageQueueSize),
	    loading  external  modules	($ModLoad) and so on.  All global direc-
	    tives 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 de-
	    fined 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 sec-
	    tion of this manpage.

     Rules (selector + action)
	    Every rule line consists of two fields, a selector field and an  ac-
	    tion  field. These two fields are separated by one or more spaces or
	    tabs. The selector field specifies a pattern of facilities and  pri-
	    orities 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  syslog(3).  The
     names  mentioned  below  correspond  to the similar LOG_-values in /usr/in-
     clude/syslog.h.

     The facility is one of the following keywords: auth, authpriv,  cron,  dae-
     mon,  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 redirect  these  mes-
     sages 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:  debug,
     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 priority defines
     the severity of the message.

     The behavior of the original BSD syslogd is that all messages of the speci-
     fied 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 facili-
     ties as you want. Remember that only the facility part from such  a  state-
     ment is taken, a priority part would be skipped.

     Multiple selectors may be specified for a single action using the semicolon
     (';') separator. Remember that each selector in the selector field is capa-
     ble  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 intuitively.

     However,  please note that there are some restrictions over the traditional
     BSD syslog behaviour. These restrictions stem back to sysklogd, exist prob-
     ably 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  local6,
     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  gen-
     eral, message content is written to a kind of "logfile". But also other ac-
     tions  might be done, like writing to a database table or forwarding to an-
     other host.

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

     Example:
	    *.*       /var/log/traditionalfile.log;RSYSLOG_TraditionalFileFormat
	    # 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 timestamps

     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	performance  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) com-
     mand 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  host-
     name.

     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  mes-
     sages (the higher the traffic, the more likely and severe is message 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  setting
     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  re-
     mote forwarding. For full details, please see the HTML documentation.

   List of users
     Usually  critical	messages  are also directed to ``root'' on that machine.
     You can specify a list of users that shall get the message by simply  writ-
     ing  ":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: ":omusrmsg: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 Mon-
     itorWare-compatible  schema  is  required	for this to work. You can create
     that schema with the createDB.SQL file that came with the rsyslog	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  immediately
     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 action.
     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 "$my-
     channel". Output channels support template definitions like all  all  other
     actions.

   Shell execute
     This  executes a program in a subshell. The program is passed the template-
     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 tem-
     plate 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  con-
     figuration  files.  If you just need to filter based on priority and facil-
     ity, you should do this with selector lines. They are not second-class cit-
     izens 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, an-
     other  comma  and	then  the  value  to compare against. This value must be
     quoted.  There can be spaces and tabs between the	commas.  Property  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 con-
		   tents. 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 expres-
		   sion.

   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 syslogd.c and you will  find
     the hardcoded ones.

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

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

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

     All  text	in the template is used literally, except for things within per-
     cent signs. These are properties and allow you access to  the  contents  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 manpage.

     To escape:
	% = \%
	\ = \\ --> '\' is used to escape (as in C)
     $template TraditionalFormat,"%timegenerated% %HOSTNAME% %syslogtag%%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 syslog mes-
     sages from different hosts to different files (one per host), you	can  de-
     fine 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 template
     as whole.	See details below. Be sure NOT to mistake template options  with
     property  options	-  the later ones are processed by the property 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  for-
		   mat.  This will replace single quotes ("'") and the backslash
		   character by their  backslash-escaped  counterpart  ("'"  and
		   "\")  inside each field. Please note that in MySQL configura-
		   tion, the NO_BACKSLASH_ESCAPES mode must be	turned	off  for
		   this format to work (this is the default).

	    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 violated 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 vulner-
     able 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 action 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 an-
     other 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	process-
     ing 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 option
     set.

   Template examples
     Please note that the samples are split across multiple  lines.  A	template
     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  something
     different	in  the  future.   So if you use them, be prepared to change you
     configuration file syntax when you upgrade to a later release.

     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 action-
     on-max-size a command to be issued when the max size is reached. This  com-
     mand  always  has exactly one parameter. The binary is that part of action-
     on-max-size before the first space, its parameter is everything 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 below). 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 prop-
     erty 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 neces-
	    sarily the original sender)

     syslogtag
	    TAG from the message

     programname
	    the "static" part of the tag, as defined by BSD syslogd.  For  exam-
	    ple, 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. "syslog.info")

     IUT    the  monitorware  InfoUnitType  - used when talking to a MonitorWare
	    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 resolution

     timereported
	    timestamp from the message. Resolution depends on what was	provided
	    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-sys-
	    log-protocol

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

     MSGID  The  contents  of the MSGID field from IETF draft draft-ietf-syslog-
	    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  offset
     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 ex-
     ample, if you would like to convert the full message text	to  lower  case,
     use "%msg:::lowercase%". If you would like to extract from a position until
     the  end  of  the string, you can place a dollar-sign ("$") in toChar (e.g.
     %msg:10:$%, which will extract from position 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 expression
     instead of position-based extraction is desired. The actual regular expres-
     sion must then be provided in toChar. The regular expression must	be  fol-
     lowed  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 anything that is
     delimited by a delimiter character. The delimiter by default  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 imme-
     diately 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  num-
     ber  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 (delimited by TAB) from the msg property is extracted is as  fol-
     lows:  "%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 useful
	    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  contain
	    control characters, escape sequences nor any other replacement char-
	    acter like space.

QUEUED OPERATIONS
     Rsyslogd  supports queued operations to handle offline outputs (like remote
     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
     /usr/local/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  rsyslog
     distribution or online at

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

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

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

Version 8.2502.0		18 February 2025		 RSYSLOG.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rsyslog.conf&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help