Refactor the grown mess that is the current log subsystem into a driver model, where code is structured in separate drivers plus a central management part that is decoupled from the details of the individual log types. Look into how to share resources between drivers in a least messy way.
Additionally think about whether and how to minimize copying when multiple content logs are enabled, e.g. by adding atomics-protected reference counting and a include-this-here pointer to log buffers.
Refactor the grown mess that is the current log subsystem into a driver model, where code is structured in separate drivers plus a central management part that is decoupled from the details of the individual log types. Look into how to share resources between drivers in a least messy way.
Additionally think about whether and how to minimize copying when multiple content logs are enabled, e.g. by adding atomics-protected reference counting and a include-this-here pointer to log buffers.