19

I came across this one Debian Linux installation (6.0.6), and examining its /etc/rsyslog.conf, I see configuration lines like this:

auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog

I can't find anything about prepending dashes to the file action in rsyslog.conf(5), and what the meaning of it might be, and would like to know what they actually do.

Pawel Veselov
  • 744
  • 8
  • 19

2 Answers2

17

Googled this a bit more, and found this.

In essence, it means to not synchronize the log file to disk every time there is a write, if synchronization behavior is on by default.

It is stated that since v3 the default behavior is not sync, and it's possible to change this by specifying "$ActionFileEnableSync on/off".

der_wolle
  • 183
  • 1
  • 5
Pawel Veselov
  • 744
  • 8
  • 19
2

To add a bit more context, the "Configuration » Actions" documentation page describes the significance of prefixing output filenames with a - (U+002D "HYPHEN-MINUS"):

You may prefix each entry with the minus “-‘’ sign to omit syncing the file after every logging.

However, that page does not mention the $ActionFileEnableSync configuration statement, nor that it defaults to off as of v3.12.4 (released on 2008-03-25, according to the ChangeLog).

EDIT: I originally (mis)read the page @Pawel linked to, missing the relevant remark inside a parenthetical there:

Rsyslogd tries to keep as compatible to stock syslogd as possible. As such, it retained stock syslogd’s default of syncing every file write if not specified otherwise (by placing a dash in front of the output file name).

chbrown
  • 1,074
  • 10
  • 8