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 messagesMacros 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.