### Autogenerated by system_syslog.py ###

{% if global.marker is vyos_defined %}
$ModLoad immark
{%     if global.marker.interval is vyos_defined %}
$MarkMessagePeriod {{ global.marker.interval }}
{%     endif %}
{% endif %}
{% if global.preserve_fqdn is vyos_defined %}
$PreserveFQDN on
{% endif %}

# We always log to /var/log/messages
$outchannel global,/var/log/messages,262144,/usr/sbin/logrotate {{ logrotate }}
{% if global.facility is vyos_defined %}
{%     set tmp = [] %}
{%     for facility, facility_options in global.facility.items() %}
{%         set _ = tmp.append(facility.replace('all', '*') + '.' + facility_options.level.replace('all', '*')) %}
{%     endfor %}
{{ tmp | join(';') }} :omfile:$global
{% endif %}

{% if file is vyos_defined %}
# File based configuration section
{%     for file_name, file_options in file.items() %}
{%         set tmp = [] %}
$outchannel {{ file_name }},/var/log/user/{{ file_name }},{{ file_options.archive.size }},/usr/sbin/logrotate {{ logrotate }}
{%         if file_options.facility is vyos_defined %}
{%             for facility, facility_options in file_options.facility.items() %}
{%                 set _ = tmp.append(facility.replace('all', '*') + '.' + facility_options.level.replace('all', '*')) %}
{%             endfor %}
{%         endif %}
{{ tmp | join(';') }} :omfile:${{ file }}
{%     endfor %}
{% endif %}

{% if console.facility is vyos_defined %}
# Console logging
{%     set tmp = [] %}
{%     for facility, facility_options in console.facility.items() %}
{%         set _ = tmp.append(facility.replace('all', '*') + '.' + facility_options.level.replace('all', '*')) %}
{%     endfor %}
{{ tmp | join(';') }} /dev/console
{% endif %}

{% if host is vyos_defined %}
# Remote logging
{%     for host_name, host_options in host.items() %}
{%         set tmp = [] %}
{%         if host_options.facility is vyos_defined %}
{%             for facility, facility_options in host_options.facility.items() %}
{%                 set _ = tmp.append(facility.replace('all', '*') + '.' + facility_options.level.replace('all', '*')) %}
{%             endfor %}
{%         endif %}
{%         if host_options.protocol is vyos_defined('tcp') %}
{%             if host_options.format.octet_counted is vyos_defined %}
{{ tmp | join(';') }} @@(o){{ host_name | bracketize_ipv6 }}:{{ host_options.port }};RSYSLOG_SyslogProtocol23Format
{%             else %}
{{ tmp | join(';') }} @@{{ host_name | bracketize_ipv6 }}:{{ host_options.port }}
{%             endif %}
{%         else %}
{{ tmp | join(';') }} @{{ host_name | bracketize_ipv6 }}:{{ host_options.port }}{{ ';RSYSLOG_SyslogProtocol23Format' if host_options.format.octet_counted is vyos_defined }}
{%         endif %}
{%     endfor %}
{% endif %}

{% if user is defined and user is not none %}
# Log to user terminal
{%     for username, user_options in user.items() %}
{%         set tmp = [] %}
{%         if user_options.facility is vyos_defined %}
{%             for facility, facility_options in user_options.facility.items() %}
{%                 set _ = tmp.append(facility.replace('all', '*') + '.' + facility_options.level.replace('all', '*')) %}
{%             endfor %}
{%         endif %}
{{ tmp | join(';') }} :omusrmsg:{{ username }}
{%     endfor %}
{% endif %}