@version: 3.28
@include "scl.conf"
options {
  chain_hostnames(off);
  flush_lines(0);
  use_dns(no);
  dns_cache(no);
  use_fqdn(no);
  owner("root"); group("adm"); perm(0640);
  stats_freq(0);
  bad_hostname("^gconfd$");
};
source s_src {
  unix-stream("/dev/log");
  internal();
};
destination d_stdout { pipe("/dev/stdout"); };
destination d_redis_ui_log {
  redis(
    host("`REDIS_SLAVEOF_IP`")
    persist-name("redis1")
    port(`REDIS_SLAVEOF_PORT`)
    command("LPUSH" "POSTFIX_MAILLOG" "$(format-json time=\"$S_UNIXTIME\" priority=\"$PRIORITY\" program=\"$PROGRAM\" message=\"$MESSAGE\")\n")
  );
};
destination d_redis_f2b_channel {
  redis(
    host("`REDIS_SLAVEOF_IP`")
    persist-name("redis2")
    port(`REDIS_SLAVEOF_PORT`)
    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
  );
};
filter f_mail { facility(mail); };
# start
# overriding warnings are still displayed when the entrypoint runs its initial check
# warnings logged by postfix-mailcow to syslog are hidden to reduce repeating msgs
# Some other warnings are ignored
filter f_ignore {
  not match("overriding earlier entry" value("MESSAGE"));
  not match("TLS SNI from checks.mailcow.email" value("MESSAGE"));
  not match("no SASL support" value("MESSAGE"));
  not facility (local0, local1, local2, local3, local4, local5, local6, local7);
};
# end
log {
  source(s_src);
  filter(f_ignore);
  destination(d_stdout);
  filter(f_mail);
  destination(d_redis_ui_log);
  destination(d_redis_f2b_channel);
};
