You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
String formatter now has optional placeholder, which can be fully ignored by the library, when it's not present in a record.
String formatter now can be configured with prefix, suffix and separator while using optional or variadic placeholders.
String formatter has learned some convenient error-handling magic and can tell the User where and what type of error has happened.
It's now possible to represent time value structure in local timezone.
Any logger-compatible type (based on logger_base_t) can be created through a repository.
Use compiler extension (cross-platform nonetheless) to check log message format correctness in compile time.
The library now widely uses deprecated attribute feature, which allows to reduce from version to version migration pain.
Bug fixes
Process id attribute is back and its extraction is much cheaper.
Message attribute should no longer hangs out with external attributes.
Fixed typo in GCC 4.6 detection macro.
API
Log record has been completely refactored (and documented).
Completely dropped all scope-specific stuff. Actually, there are three scopes left, but its management is fully incapsulated into the library.
Completely dropped blackhole::log::* namespace, because it's already the Logging Library.
Logger wrapper can now provide const reference to the underlying logger.
Dropped 'in situ' substitution mechanism for keyword attributes, because it is creepy and useless.
Base config objects now return const references instead of copying.
Other
Allow to use '_' symbol in placeholder name.
Fixed compatibility with GCC 4.4, which emitted false-positive warning.
Attribute value holders are now comparable.
Frontend factory now has more convenient interface.
Blackhole should no longer propagate exception raised from boost::format, while formatting message string. Instead of this an exception reason will be printed as message.
Using specialized exception instead of more generic while parsing configuration object.
Added logger trait concept.
More forward declarations, which may be useful with compile time reducing.
A lot of documentation added.
Performance
Pack feeder now has overload that accepts string literal, which allows to avoid unnecessary transformations.
Multiple attribute sets is aggregated into single view class, so attribute lookup is performed lazily when it is needed by someone.
String formatter now internally uses ADT instead of packed functions.
Accelerated variadic placeholder handling in string formatter by approximately 30% via avoiding unnecessary string transformations.