Release Notes¶
ng-log¶
0.8.3 July 10, 2026¶
- Mapped the CMake option value
noneto a proper CMake boolean string - Fixed reading uninitialized output when a demangled name is truncated
0.8.2 August 16, 2025¶
- Propagated the configured language standard to the unit tests
0.8.1 June 15, 2025¶
- Fixed
LogCleanerdeleting onlyINFOlevel logs when enabled for all severities - Fixed a regression in thread-local storage support
- Deprecated the
glogCMake import target in favor ofng-log - Added support for compiling without RTTI
0.8.0 May 1, 2025¶
First public release under the new name.
Compatibility
A full compatibility layer is provided so that existing code can keep including the legacy headers and using the legacy API up to version 0.9.0.
Pre-migration history¶
The releases below predate the rename and are kept here for historical reference.
0.7.1 June 8, 2024¶
- Fixed Android detection
- Fixed formatting of unknown stack frames
0.7.0 February 17, 2024¶
Major overhaul to take advantage of C++14 language and library features,
including using chrono types in the public API.
ABI incompatible changes
Source compatibility with the previous release was maintained where possible, but downstream clients need to recompile due to ABI incompatible changes.
Changes:
- Added C++14 as the primary language standard
- Added Emscripten support
- Changed
LogSeverityto an unscoped enum, which can surface previously silent implicit conversions betweenintandLogSeverity - Changed CMake to no longer generate pkg-config files by default (opt in
via
WITH_PKGCONFIG) - Deprecated
LogMessage::getMessageTimein favor ofLogMessage::time - Deprecated
LogMessageTime::timestampin favor ofLogMessageTime::when - Deprecated
LogMessageTime::gmtoffin favor ofLogMessageTime::gmtoffset - Deprecated
EnableLogCleaner(unsigned)in favor ofEnableLogCleaner(std::chrono::minutes) - Deprecated the
LogSink::sendoverload acceptingstd::tmin favor of one acceptingLogMessageTime -
Deprecated
LogMessageInfoand its prefix callback in favor ofLogMessageandInstallPrefixFormatterAll deprecated methods were removed in 0.8.0.
0.6.0 April 5, 2022¶
- Added time-based periodic logging (
LOG_EVERY_T) - Added
LogMessageTime::gmtoff()to obtain the GMT offset - Added support for stack unwinding on Android
- Added
FLAGS_log_year_in_prefixto control whether the year is included in the log prefix - Added
logtostdoutandcolorlogtostdoutflags to support logging to stdout - Exposed
IsGoogleLoggingInitialized()in the public API - Changed
LogCleanerto support relative paths - Changed
--max_log_sizeto useuint32and prevented it from overflowing - Renamed the
GOOGLE_GLOG_DLL_DECLexport macro toGLOG_EXPORT - Enabled the custom prefix option by default
- Deprecated the
LogSink::sendoverload acceptingstd::tmin favor of one acceptingLogMessageTime, while keeping a backward-compatible overload - Raised the minimum required CMake version to 3.16 and gflags to 2.2.2
- Fixed CMake configuration on Cygwin and various compiler warnings across toolchains
0.5.0 May 8, 2021¶
- Added support for customizing the log line prefix
(
InstallPrefixFormatter) - Added automatic removal of old log files (
EnableLogCleaner) - Added a
FLAGS_log_utc_timeoption to write timestamps in UTC - Added the year to the default log line prefix
- Added support for outputting log messages to Android's logcat
- Added pkg-config support and vcpkg installation instructions
- Added support for using libunwind as an imported CMake target
- Changed the build to require a C++11 compiler; a C compiler and Windows-specific or legacy C headers are no longer needed
- Changed CMake to build shared libraries by default
- Removed the autoconf-based build in favor of CMake only
- Fixed race conditions in
LOG_EVERY_Nand related macros - Fixed handling of
--max_log_sizeoverflow - Fixed various Windows linker warnings
0.4.0 January 22, 2019¶
- Added support for building with Bazel
- Added Cygwin support
- Added stack tracing support on Windows
- Renamed the CMake project from
google-glogtoglog - Reduced heap allocations on the logging fast path
- Fixed username lookup when the
USERenvironment variable is missing - Fixed mingw cross compilation and redefinition warnings from
config.h - Fixed a number of missing symbol exports on Windows
- Added support for colored output on the konsole terminal family
0.3.5 May 9, 2017¶
- Added CMake build support
- Added
DCHECK_ALWAYS_ONto keepD*macros enabled underNDEBUG - Added
logfile_modeto control the permissions of created log files - Added support for PowerPC and color output for tmux terminals
- Changed
CHECK_NOTNULLto work with smart pointers when compiled as C++11 - Changed
Symbolizeto calculate a module's base address from its program headers - Fixed an
AddLogSinkmemory leak - Fixed a double-free in a Windows unit test
- Fixed a dangling sink pointer after removal
- Fixed memory allocation from the signal handler
- Various MinGW and Windows build fixes
0.3.4 March 9, 2015¶
- Moved the repository to GitHub
- Added libc++ support
- Added a callback for
OpenObjectFileContainingPcAndGetStartAddress - Added
StrErrorand replaced theposix_strerror_rcall - Added support for
unordered_map/unordered_setin STL logging - Reduced dynamic allocation from three to one allocation per log message
- Fixed a build issue in
demangle.cc - Fixed missing
GOOGLE_GLOG_DLL_DECLfor the latest Visual Studio
0.3.3 February 1, 2013¶
- Added a
--disable-rtticonfigure option - Added color output support via
GLOG_colorlogtostderr - Allowed re-initializing the library after
ShutdownGoogleLogging - Changed the ABI around flags to be compatible with gflags
- Fixed
LOG_SYSRESULT - Fixed Visual Studio, QNX, and FreeBSD builds
0.3.2 January 12, 2012¶
- Added Clang support
- Improved the demangler and stack trace support for newer GCC versions
- Fixed
fork(2)corrupting log files - Fixed
ERRORbeing defined bywindows.h
0.3.1 June 15, 2010¶
- Added
DCHECK_NOTNULL - Added
ShutdownGoogleLoggingto close syslog - Added support for building and testing out of tree
- Fixed
GLOG_*environment variables being ignored when gflags is installed - Fixed the
--enable-frame-pointersoption and libunwind detection
0.3.0 July 30, 2009¶
- Added NetBSD and OpenBSD support
- Fixed a deadlock triggered when using a recent version of gflags
- Fixed hostname and username detection on Windows
0.2.1 April 10, 2009¶
- Added pkg-config support
- Added a
--with-gflagsconfigure option - Fixed timestamps produced by the VC++ build
- Fixed building with gtest
0.2 January 23, 2009¶
- Added initial Windows VC++ support
- Added the
LOG_TO_STRING,LOG_AT_LEVEL,DVLOG, andLOG_TO_SINK_ONLYmacros - Added the
--log_backtrace_atoption - Added microsecond precision to logged timestamps
- Added automatic linking of the pthread library
0.1.2 November 18, 2008¶
- Added
InstallFailureSignalHandler() - Changed how stack traces are produced
- Removed the unnecessary
DISALLOW_EVIL_CONSTRUCTORSmacro
0.1.1 October 15, 2008¶
- Added symbolization support on macOS 10.5
- Fixed
--vmodulenot working together with gflags - Fixed
symbolize_unittestwith GCC 4.3
0.1 October 7, 2008¶
Initial release: a library implementing application-level logging, with logging APIs based on C++-style streams and various helper macros.