However, it appears to not be listened to on server start-up. When we run `kcli set-log-filter info` manually, it works right away and we see info logs to appear.
Is this a possible issue, or a misconfiguration/understanding?
I read that on the docs indeed, however, when starting the containers, they only print (from our local env, just as example):
2026-06-22T08:22:56.492747Z INFO localset-0 kumod: Version is 2026.03.13-813c7935
2026-06-22T08:22:56.492765Z INFO localset-0 kumod: NodeId is 37179fcd-08da-48b5-ad1c-f472b5e956ad
2026-06-22T08:22:56.492799Z INFO localset-0 kumod: available_parallelism=10
2026-06-22T08:22:56.493209Z INFO localset-0 kumod::smtp_server: smtp listener on 0.0.0.0:2500
2026-06-22T08:22:56.493253Z INFO localset-0 kumod::smtp_server: smtp listener on 0.0.0.0:2510
and then it just stops, until I run the kcli set-log-filter command.
I just tested this again on a recent Kumo version, running on Ubuntu 24 in an AWS EC2 instance.
To be clear, the only thing you will see are info messages. So the startup info will happen and anything you do as a PRINT line in the config will show. Ubuntu will catch ERRROR lines in the journal as well by default.
We’re on the latest version as of this weekend (2026.06.23-f3af1cd0) running on Kubernetes 1.34.
What happens is we indeed see the startup logs, and then nothing (no errors since latest restart so can’t say for sure.
We do have some custom prints, for example:
kumo.log_info('Queue config: domain=' .. (domain or 'nil') ..
' tenant=' .. (tenant or 'nil') ..
' campaign=' .. (campaign or 'nil') ..
' pool=' .. pool)
These do not appear until we manually run `kcli set-log-filter info`.
We have set the following environment variable:
env:
- name: KUMOD_LOG
value: kumod=info
…however while writing this, I am starting to think that this is the error. I’ll try to change the value to `info` instead of `kumod=info`. (set_diagnostic_log_filter - KumoMTA Docs)
I just did a restart to apply the configmap with `info` instead of `kumod=info`, no change sadly.
Running the set-log-filter command with info does make it start logging the info logs again. Let me know if I should try some thing out, happy to do so!
It sounds like you may be viewing STDERR only and not STDOUT.
The output you are describing is normally streamed through STDERR. If you manually run Kumo like this, piping the STDERR output to a file you will see something like this: sudo /opt/kumomta/sbin/kumod --policy /opt/kumomta/etc/policy/init.lua --user root 2> ~/output_log.txt
2026-07-20T19:55:24.968937Z INFO localset-0 kumod: Version is 2026.06.23-f3af1cd0 2026-07-20T19:55:24.968970Z INFO localset-0 kumod: NodeId is 1b788b96-cc65-4e81-b371-efed6be2f70e 2026-07-20T19:55:24.969061Z INFO localset-0 kumod: available_parallelism=16 2026-07-20T19:55:24.969270Z INFO localset-0 kumod::smtp_server: smtp listener on 0.0.0.0:25 2026-07-20T19:55:25.007823Z ERROR logging-0 kumod::logging::files: Error: failed to mark existing logs as done in /var/log/kumomta: Permission denied (os error 13) 2026-07-20T19:55:25.008587Z INFO localset-3 kumod::spool: Using concurrency 8 for spooling in 2026-07-20T19:55:25.014976Z INFO localset-3 kumod::spool: start_spool: enumeration done, spooled in 0 msgs over 7.30764ms 0/s 2026-07-20T19:55:32.203603Z INFO localset-1 kumod::smtp_server: smtp listener on 0.0.0.0:25 → stopping 2026-07-20T19:55:32.207281Z INFO main kumod::spool: Shutting down spool 2026-07-20T19:55:32.207647Z INFO main kumod::spool: data shutdown completed in 283.71µs 2026-07-20T19:55:32.207665Z INFO main kumod::spool: meta shutdown completed in 324.263µs 2026-07-20T19:55:32.208649Z INFO main kumod: application logic complete, returning from main
But if you run it again and only capture STDOUT, it looks something like this: sudo /opt/kumomta/sbin/kumod --policy /opt/kumomta/etc/policy/init.lua --user root 1> ~/output_log.txt
this is the time
Where “this is the time” is a single print line in my config.
From the K8s docs:
By default, Kubernetes automatically captures both stdout and stderr streams from your containers without any extra configuration. When you run kubectl logs , Kubernetes automatically merges and displays both streams together in your terminal.