# if you experience problems, check
# http://www.rsyslog.com/troubleshoot for assistance

# rsyslog v3: load input modules
# If you do not load inputs, nothing happens!
# You may need to set the module load path if modules are not found.
#
# Ported from debian's sysklogd.conf

# Journal-style logging
# Limit to no more than 2000 entries in one minute and enable the
# journal workaround to avoid duplicate entries
module(load="imjournal" StateFile="/var/log/state"
                        RateLimit.Interval="60"
                        RateLimit.Burst="2000")

# Template for Redfish messages
# "<timestamp> <MessageId>,<MessageArgs>"
template(name="IPMISELTemplate" type="list") {
    property(name="timereported" dateFormat="rfc3339")
    constant(value=" ")
    property(name="$!IPMISEL_MESSAGE_ID")
    constant(value=", ")
    property(name="$!IPMISEL_MESSAGE_ARGS")
    constant(value="\n")
}

# If the journal entry has a Redfish MessageId, save as a Redfish event
if ($!IPMISEL_MESSAGE_ID != "") then {
   action(type="omfile" file="/var/log/ipmi_sel" template="IPMISELTemplate")
}

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
