SCOPE-1: Standard Logger^

reporter:

kennethpjdyer

created:

2026-07-24

Summary^

Develop a standard console logger for use by downstream tools to report their runtime status to the user. Include a command-line tool to initialize the logger implementation for developers.

Motivation^

Every tool needs some system by which to report its runtime state to the user. The user needs to know what’s happening and when it happens and should the process fail, the user also needs to know what went wrong and how to fix it.

After a review of our plans for tools, the ideal solution to this need is to develop a console logger. To ensure that messages follow a standard format, we’ll package the logger in a library that downstream tools will utilize to configure their logging operations.

Targets^

Goals^

  • Build processes to handle unit tests and memory issues

  • Functions to report library name and version

  • Macros to handle labels for logging levels

  • Macros to handle colors for logging levels

  • Functions to provide char* labels for logging messages

  • Macros to handle printing messages to stderr

  • Command-line tool to initialize downstream loggers

Non-Goals^

  • Robust command-line options for tool

User Experience^

End User^

The end user should not have any direct interactions with the standard logger. Instead the logger configures the format and visibility of messages printed to stderr.

Developers^

Developers should begin processes by running the command-line tool to initialize a log.h file, which provides project-specific macros to utilize the logger.

Id est, the atRead project might have a macro for atread_warnf to print their warning messages. If atRead uses an upstream library that generates a logging message, the message will be formatted to that library’s specification.

Dependencies^

The standard logger has no dependencies outside of the C standard library.

Issues^

INIT-1: Standard Parser SCOPE-2: Standard Reader