What does "-/filepath" ACTION mean in rsyslog configuration

Solution 1:

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".

Solution 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).