ores.logging

Table of Contents

1. Diagram

ores.logging component diagram

Figure 1: ores.logging

2. Summary

ores.logging is the core logging library for all ORE Studio components. It wraps Boost.Log with a make_logger() factory, OpenTelemetry-compatible severity levels, and a lifecycle_manager virtual base for console and file sink configuration. It was extracted from ores.telemetry specifically to break the circular dependency that arose when ores.database needed logging but ores.telemetry depended on ores.database. All services and libraries depend on ores.logging; ores.telemetry extends it with OTLP export and trace correlation.

3. Inputs

  • Logging options from command-line or configuration (sink type, log level, file path).

4. Outputs

  • Named boost::log logger instances for use across components.
  • Log records emitted to console and/or file sinks.

5. Entry points

  • include/ores.logging/make_logger.hpp — logger factory.
  • include/ores.logging/severity_level.hpp — severity level enum.
  • include/ores.logging/lifecycle_manager.hpp — sink lifecycle base class.
  • include/ores.logging/logging_options.hpp — parsed logging configuration.

6. Dependencies

  • Boost.Log — the back-end, its sinks, and record formatting.
  • Boost.ProgramOptions — the --log-* command line.
  • Boost.Exception — the logging_exception base.
  • ores.platform — the process ID embedded in the log file name.

7. See also

Emacs 29.3 (Org mode 9.6.15)