-filter f_iptables { facility(kern) and match("IN=[A-Za-z0-9]* OUT=[A-Za-z0-9]*"); };
-
-log { source(src); filter(f_kern); destination(kern); };
-
-log { source(src); filter(f_authpriv); destination(authlog); };
-log { source(src); filter(f_syslog); destination(syslog); };
-log { source(src); filter(f_cron); destination(cron); };
-log { source(src); filter(f_daemon); destination(daemon); };
-log { source(src); filter(f_lpr); destination(lpr); };
-log { source(src); filter(f_user); destination(user); };
-log { source(src); filter(f_uucp); destination(uucp); };
-log { source(src); filter(f_messages); destination(messages); };
-log { source(src); filter(f_ppp); destination(ppp); };
-log { source(src); filter(p_debug); destination(debug); };
-log { source(src); filter(p_emergency); destination(console); };
-log { source(src); destination(console_all); };
-
-log { source(src); filter(f_mail); destination(mail); };
-log { source(src); filter(f_mail); filter(p_info); destination(mailinfo); };
-log { source(src); filter(f_mail); filter(p_warn); destination(mailwarn); };
-log { source(src); filter(f_mail); filter(p_err); destination(mailerr); };
-
-log { source(src); filter(f_news); filter(p_crit); destination(uucp); };
-log { source(src); filter(f_news); filter(p_crit); destination(newscrit); };
-log { source(src); filter(f_news); filter(p_err); destination(newserr); };
-log { source(src); filter(f_news); filter(p_warn); destination(newsnotice); };
-log { source(src); filter(f_news); filter(p_notice); destination(newsnotice); };
-log { source(src); filter(f_news); filter(p_info); destination(newsnotice); };
-log { source(src); filter(f_news); filter(p_debug); destination(newsnotice); };
-
-#log { source(src); filter(f_iptables); destination(iptables); };
+# Additional filters for specific programs/use
+filter f_freshclam { program(freshclam); };
+filter f_ppp { program(pppd) or program(chat); };
+filter f_postgres { program(postgres); };
+filter f_iptables { match("IN=[A-Za-z0-9\.]* OUT=[A-Za-z0-9\.]*" value("MESSAGE")); };
+
+log { source(s_sys); filter(f_authpriv); destination(d_authlog); };
+log { source(s_sys); filter(f_cron); destination(d_cron); };
+log { source(s_sys); filter(f_daemon); destination(d_daemon); };
+log { source(s_sys); filter(f_ftp); destination(d_ftp); };
+log { source(s_sys); filter(f_kern); destination(d_kern); };
+log { source(s_sys); filter(f_lpr); destination(d_lpr); };
+log { source(s_sys); filter(f_mail); destination(d_mail); };
+log { source(s_sys); filter(f_news); filter(p_crit); destination(d_uucp); };
+log { source(s_sys); filter(f_news); filter(p_crit); destination(d_newscrit); };
+log { source(s_sys); filter(f_news); filter(p_err); destination(d_newserr); };
+log { source(s_sys); filter(f_news); filter(p_warn); destination(d_newsnotice); };
+log { source(s_sys); filter(f_news); filter(p_notice); destination(d_newsnotice); };
+log { source(s_sys); filter(f_news); filter(p_info); destination(d_newsnotice); };
+log { source(s_sys); filter(f_news); filter(p_debug); destination(d_newsnotice); };
+log { source(s_sys); filter(f_syslog); destination(d_syslog); };
+log { source(s_sys); filter(f_user); destination(d_user); };
+log { source(s_sys); filter(f_uucp); destination(d_uucp); };
+
+log { source(s_sys); filter(p_debug); destination(d_debug); };
+
+log { source(s_sys); filter(f_daemon); filter(f_ppp); destination(d_ppp); };
+log { source(s_sys); filter(f_local6); filter(f_freshclam); destination(d_freshclam); };
+log { source(s_sys); filter(f_local0); filter(f_postgres); destination(d_postgres); };
+#log { source(s_sys); filter(f_iptables); destination(d_iptables); };
+
+log { source(s_sys); filter(p_emergency); destination(d_console); };
+#log { source(s_sys); destination(d_console_all); };
+
+# This is a catchall statement, and should catch all messages which were not
+# accepted any of the previous statements.
+log { source(s_sys); destination(d_messages); flags(fallback); };
+
+# Network syslogging
+#log { source(s_sys); destination(d_loghost); };