The two daemons currently construct their dropshot loggers differently.
mgd/src/admin.rs builds dropshot's logger as a child of the parent (log.new(o!(...))), so dropshot inherits whatever level mgd runs at (typically Info).
ddm/src/admin.rs and ddm/src/exchange/runtime.rs construct a separate ConfigLogging::StderrTerminal { level: Error }.to_logger(...) so dropshot's per-request logs are suppressed unless it surfaces at Error.
With #729, both API surfaces now carry the same structured keys (component / module / unit), but still have different level thresholds.
Adding some context from @taspelund:
I'm going to tag in @rcgoodfellow in to help give some historical context -- I just don't have the history with ddm to know why we'd filter the logs down to just >= error.
I would think info should generally not be so cluttered that we need to avoid them in the logger. If the reason for the filter was truly just noise, then we should consider converting noisy logging calls to debug instead of leaving them at info... although I'm ok if that means filing a follow-up issue to address it later, rather than holding up this PR
The two daemons currently construct their dropshot loggers differently.
mgd/src/admin.rsbuilds dropshot's logger as a child of the parent(log.new(o!(...))), so dropshot inherits whatever level mgd runs at (typicallyInfo).ddm/src/admin.rsandddm/src/exchange/runtime.rsconstruct a separateConfigLogging::StderrTerminal { level: Error }.to_logger(...)so dropshot's per-request logs are suppressed unless it surfaces at Error.With #729, both API surfaces now carry the same structured keys (component / module / unit), but still have different level thresholds.
Adding some context from @taspelund: