To explain the use of colorful log output in ALox, it is best to elaborate roughly on some details of the ALox software architecture.
While ALox in principle is designed to process Logables of arbitrary type, the most widely spread use case is logging textual information. For this reason, abstract class Logger (C++, C#, Java) is specialized by class TextLogger (C++, C#, Java) (still abstract). Besides providing basic features useful for textual log output, for example generating human readable meta information of Log Statements, class TextLogger introduces a set of 'escape sequences'. These sequences are gathered in class ESC (C++, C#, Java) which is (for convenience) located in namespace %[com.|cs.]aworx.lox (C++, C#). The ESC-sequences are quite similar to those known from ANSI terminals. They provide settings of foreground and background colors and font styles. The ESC-sequences may occur in the (string type) Logables and as well in field MetaInfo.Format (C++, C#, Java).
This is a sample taken from the documentation of class ESC (C# version):
Now, if a output 'drain' does not support the modification of colors (e.g. when logging into a text file), these codes need to be removed before the textual log message is written. This task is done by class PlainTextLogger (C++, C#, Java) which in turn specializes TextLogger and which also is still abstract. The following diagram visualizes what was said so far:
The result of this design should not need much explanation: Logger types that do not support colors are derived from PlainTextLogger, while those that support colors are derived from TextLogger:
The takeaways from this short technical spotlight are now fairly obvious: