Messagge Facility Logging is built on top of the standard JDK Logging API infrasture, which was introduced since Java 1.4.
Message Facility Logging tries to solve several problems encountered with other logging systems.
JDK Logging as a final solution is disappointing by its configuration file format, too restrictive and inflexible. There is even no way to configure multiple instances of the logger handler class in the properties file.
Other logging systems also impose simular file-based configuration as within a single file, which is obviously inappropriate in application server environments.
Based on Meta Facility - the hierarchical configuration system, Message Facility successfully splits logging configurations to meta resource files as per logger basis, while descendant loggers can inherit their ancestor loggers' configurations as well.
Message Facility accepts Messages for log records, they are naturally i18n ready.
With other logging systems, you normally have to write extra Code Guards to reduce logging costs of disabled levels at runtime. However, with Message Facility, this is less necessary, because the message for the log record will not get formatted unless its level is enabled. It's also possible with Message Facility, to entirely get rid of runtime logging costs without recompiling your source code. That is to invoke Messager logging methods with the assert keyword, since those methods always return true to pass the assertion. In this way, your logging code will even NOT get loaded by the JVM unless assertion is enabled.