@version: 3.8
@include "scl.conf"
options {
  chain_hostnames(off);
  flush_lines(0);
  use_dns(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-mailcow")
    persist-name("redis1")
    port(6379)
    command("LPUSH" "POSTFIX_MAILLOG" "$(format-json time=\"$S_UNIXTIME\" priority=\"$PRIORITY\" program=\"$PROGRAM\" message=\"$MESSAGE\")\n")
  );
};
destination d_redis_f2b_channel {
  redis(
    host("redis-mailcow")
    persist-name("redis2")
    port(6379)
    command("PUBLISH" "F2B_CHANNEL" "$MESSAGE")
  );
};
destination d_redis_cleanup {
  redis(
    host("redis-mailcow")
    persist-name("redis3")
    port(6379)
    command("LTRIM" "POSTFIX_MAILLOG" "0" "`LOG_LINES`")
  );
};
filter f_mail { facility(mail); };
filter f_skip_local { not facility (local0, local1, local2, local3, local4, local5, local6, local7); };
log {
  source(s_src);
  filter(f_skip_local);
  destination(d_stdout);
  filter(f_mail);
  destination(d_redis_ui_log);
  destination(d_redis_f2b_channel);
  destination(d_redis_cleanup);
};