A LogAnnotation
describes a particular type of annotation applied to log
lines.
A LogContext
stores context associated with logging operations.
Log Format represents function that that take context with all log annotations and string line and produce final log entry.
Log Format represents function that that take context with all log annotations and string line and produce final log entry.
Idea is that those format should be composed by decoration.
A log level defines the level at which an element is logged.
Represents log writer function that turns A into String and put in console or save to file.