Changelog History
-
v1.3.3 Changes
June 07, 2020π Documentation changes
- Numerous changes to API, code examples @KjellKod
- Cleanup and improvement (#328, #353) @jecaro, @mkilivan
Feature improvement
Cleanup Help
Debug levels (#259) @DerekJuba-NIST
Ambiguous constructor error. (#262) @DigitalInBlue
β Warning about whitespace (#265) @codekrafter
Code Cleanup (#336) @JoelStienletπ Bug fixing
- Macro safe calling (#320) @madscientist
- π Windows stacktrace (#334 @lederernc
π Platform support and Build Improvements
- π MinGW / Windows fixes (#260) @tkhyn
- VS2013, VS2015 improvements (#266, #273, #277, #275, #278, #291, #292, #293 ) @AndreasSchoenle, @outkontroll, @ccvca, @AlexP11223, @cstamatopoulos, @ctapmex
- CMake improvements (#190, #267, #272, #268, #299, #294, #312, #321 ) @julien-lecomte, @AndreasSchoenle, @mobileben, @MaxSavenkov, @michaelbgratton, @BenjaminBeichler, @myd7349
- π Clang build improvements (#283) @ngladitz
- CI improvements (#300, #301, #340 ) @KjellKod
- π arm64 support (#307) @mobileben
- π¦ iOS fatal signal handling (#309) @mobileben
Installation and Project integration
- project integration (#333,) @bmagistro
-
v1.3.2 Changes
March 31, 2018 -
v1.3.1 Changes
March 03, 2018Summary of changes since version 1.3
Thanks to the following coders for both major and minor contributions
- @jkhoogland
- @AndreasSchoenle
- @maj-tom
- @pshurgal
- @ttencate
- @mobileben
- @Melion
- @Jawan81
- @AndreasSchoenle
- @ctapmex
- @spinorx
- @ze897c
- @PeasantCodeFarmer
- @jcfr
Major changes mentioned below, smaller changes not mentioned.
Major Improvements
- Significantly improved CMake options for install options on multiple platforms
- π support for full filenames in logs 226(thanks @spinorx)
- π§ huge improvements for low granularity of log timestamps on both Windows and Linux 200
- π iOS support 198
- π CMake support for arbitrary, compile time decided max value for the "printf" like logs [208] (#208)
π Major Bugfix:
- π² LOG macros and if-statements without curly brances (231
- β‘οΈ doc updates for API and internal code comments
Noteworthy:
π Thanks to @AndreasSchoenle191 there is now a branch with WCHAR support. See branch: wchar_support
-
v1.3 Changes
March 30, 2017Summary of changes since 1.2
- π² Greatly improved logging format with nanoseconds support.
- β Added ARM support as well as improved OSX and Windows support
- π Build and API improvements
- π Build and API document improvements
Contributions
Thanks to the community for feedback, usage, code and review contributions.
The following deserves an extra thank you :)
AndreasSchoenle
cstamatopoulos
ctapmex
dasmysh
dasmysh
d-led
jkhoogland
kmohanram
lynn
Nitaym
OfekShilon
rickyzhang82Chronological Summary
March 2017
- π cpackage improvements : make install and make package
- π improved API and README
- π bugfix nanosecond fractions on 32 bit Windows systems
February 2017
- mingw improvements
January 2017
- π bugfix nanosecond fractions for - OS speifics
- π Visual studio build improvements
December 2016
- β added support for ARM
- β‘οΈ build and continuous integration updates
- π² logging levels improvement
- π unit test corrections for fatal signal handling on Windows
- cleanup
October 2016
- π bugfixes
- π logging for Windows improved
- β added unit tests missing for Windows logging levels
August 2016
- β added nanosecond timestamps to log and improved the logging formatting
- β‘οΈ API and README updated
- π bugfixes
July 2016
- cleanup
June 2016
- cross compiler linking improvements
May 2016
- π bugfix for potential deadlock during shutdown
March 2016
- π² log formatting bug corrected.
-
v1.2 Changes
March 07, 2016π Nothing major but it's a good point to call a new g3log release, 1.2, since we have some nice improvement to fatal handling, default logging as well as improved platform support on FreeBSD, Windows, Linux and OSX.
π§ On Linux we now also have the possibility to do 'make package'. On OSX installation can be done with 'brew install g3log'.
Summary of changes since 1.1:
March
π Fixed CPackage to work for Linux. Thanks to Hans Duedal #83
FYI: OSX users can now use βbrew install g3logβFebruary
0οΈβ£ Possiblity to override the default βg3logβ adding to the file name for the default file logger. Thanks to jkhoogland, pull request #82, issue: ##75
π Allowed parenthesis in filename paths. pull request #81, issue ##31
π Improved Linux Clang support, pull request: #77January
π cleanup code, removed unused includes: #72December
API cleanup. pull request: #66 thanks to Lu Guanqun
π Windows build support, adding debug symbols, pull request #65 thanks to Christos cstamatopoulos\November
π fixed Windows compilation issue with atomic, pull request: #63 thanks to Christos Cstamatopoulos
π Improved API documentation Readme.markdown and API.markdown, pull requests: #64, #54
π default logger will flush after every log entry written. (see github.com/KjellKod/g3sinks for other ways of handling log writing), pull request: #58
CHECK_F and CHECKF exists. CHECK_F is kept for backwards compatiability.
π improved testing for dynamic logging levelsOctober 2015
β removed warnings for gcc5, pull request: #55
β Added API.markdown to explain in more detail the g3log API
β suppress 'thread attribute directive ignored' warning on mingw (thands to Turenar )September 2015
π¦ Override of signal handler (especially useful for zmq users who need this for overriding SIGTERM, pull request #48
0οΈβ£ default log formatting improved. pull request #52, #50, thanks to Craig Cogdill
<date and time> <file>:L<line>
to
<date and time> <file>-><function>:<line>
,
π Support for FreeBSD, pull request #53,. thanks to Robert Ayrapetyan. -
v1.1 Changes
September 10, 2015With this release g3log will:
1) Gracefully handle aggressive crashing scenarios: Imagine hundreds or throusands of threads starting up and all racing to do a SIGSEGV crash? (On v1.0 that worked fine for Linux/Gcc but for OSX/Clang it did not work well. And the exit of the process could be delayed a very long time)
2) Improved sink construction and logger initialization API. See example a,b,c below
a. Create a logger
π·std::unique_ptr<LogWorker> logworker{ LogWorker::createLogWorker() }
b) Add of custom sinks (here named "CustomSink")
auto sinkHandle = logworker->addSink(std2::make_unique<CustomSink>(), &CustomSink::ReceiveLogMessage);
0οΈβ£ c) Add a default file logging sink (more sinks are available at g3sinks)
auto handle= worker->addDefaultLogger(prefix, path_to_log_file);
π² 3) Custom logging levels can be created. Please see g3log/loglevels.hpp for the value ranges
π² The example will create a logging level "HEY".const LEVELS HEY {WARNING.value + 1, {"Hey There"}}; LOG(HEY) << "Hello"
4) A custom pre death hook can be put in place to do custom actions when a fatal event is caught.
This should be set after the initialization of the logger (the initialization will otherwise clear it)// example showing a simple LOG(INFO) call but it could really be anything // After the hook is called it will be cleared so it can only be called once // if you need multiple "death cleanup" calls then the best is to bundle them within the allowed callback namespace { void Ooops() { LOG(INFO) << "Death is imminent"; } } // namespace .... elsewhere in the code g3::setFatalPreLoggingHook(&Ooops);
-
v1.0
October 13, 2012