Releases: gabime/spdlog
Releases · gabime/spdlog
Version 1.10.0
- Bump fmt to version 8.1.1.
- Added file event handlers #2165, #2169 Thanks @seker.
You can get callbacks from spdlog before/after log file has been opened or closed.
This is useful for cleanup procedures or for adding something to the start/end of the log files. Example:
void file_events_example()
{
// pass the spdlog::file_event_handlers to file sinks for open/close log file notifications
spdlog::file_event_handlers handlers;
handlers.before_open = [](spdlog::filename_t filename) { spdlog::info("Before opening {}", filename); };
handlers.after_open = [](spdlog::filename_t filename, std::FILE *fstream) { fputs("After opening\n", fstream); };
handlers.before_close = [](spdlog::filename_t filename, std::FILE *fstream) { fputs("Before closing\n", fstream); };
handlers.after_close = [](spdlog::filename_t filename) { spdlog::info("After closing {}", filename); };
auto my_logger = spdlog::basic_logger_st("some_logger", "logs/events-sample.txt", true, handlers);
}- Fixed rotating file sink: when disk is full log rotation resulted zero size log files. #2261. (thanks @kishorekrd for reporting).
- Added new udp_sink #2090. Thanks @CJLove
- (Experimental) Option to depend on std::format instead of fmtlib (set
SPDLOG_USE_STD_FORMATand use C++20). #2170 Thanks @sylveon . - Improved file name for hourly file sink #2047. Thanks @seker .
- Added code location information for error handler #2048. Thanks @D-r-P-3-p-p-3-r .
- Fixed qt_sinks ctor #2056. Thanks @mguludag .
- List Debian instructions in the README #2057. Thanks @mr-c ,
- Updated to latest Travis CI Build Status #2094. Thanks @jspraul .
- Fixed unhandled errors in udp sink. #2096. Thanks @mmarkeloff .
- CMake improvement regarding
cmake_minimum_requiredand policy. #2098. Thanks @reddwarf69 . - Fixed mongo_sink compile in older gcc versions #2102 . Thanks @yzz-ihep .
- Remove mutable keyword from mutex_ member in of sinks. #2140 . Thanks @sunlong169 .
- Fix typos #2171. Thanks @rex4539 .
- Fixed udp sink build on FreeBSD #2172. Thanks @keith-dev .
- Avoid c-style casting in stdout sinks. #2179. Thanks @ibmibmibm .
- Fixed
tweakme.hcompile error under msvcs whenSPDLOG_FUNCTIONis defined #2182. Thanks @Light3039 . - Fixed compiling errors on AIX #2181. Thanks @lisr .
- Fixed runtime when build with -fsanitize=cfi #1972. Thanks @bansan85 .
- Remove extraneous semicolon #2190. Thanks @sylveon.
- Added example how to replace default logger. #2194. Thanks @rioki .
- Fixed usage of ranges and
to_hexin the same compile unit #2195. Thanks @patrickroocks . - Reduce warnings with pedantic compiler -Wuseless-cast #2216. Thanks @vnepogodin .
- Support using
std::spaninto_hex#2228. Thanks @timblechmann . - Reset current size if rotated files on open #2234. Thanks @SpriteOvO .
- Allow forward-declaration of level_enum #2245. Thanks @daverigby .
- Call localtime() only if
pattern_formatterreally needs it #2246. Thanks @doug1234 . - Removed unneeded spaces from code. #2249. Thanks @PixelParas .
- Added a few missing files/directories to the gitignore #2255. Thanks @LeonBrands .
- Fixed issue #2201 (Pattern width is not applied for missing source information). #2269. Thanks @kyuheon-kr .
- Limit max number of rotating files to 200000. (Fixed #1905). Thanks @surfycui (#2273)
pattern_formatter: fix reorder-ctor warning #2278. Thanks @adriweb .- Fixed spdlogConfig.cmake when built with
SPDLOG_FMT_EXTERNAL_HO#2300. Thanks @adamcalhoon . - Fixed
fopen_s(..)error handling whenPREVENT_CHILD_FDis defined #2305. Thanks @nUl1. - Fixed compiler error when building on Windows with #define UNICODE #2317. Thanks @risa2000 .
- Added option to enable formatting of systemd sink #2324, #2320. Thanks @Delgan .
- Added optional "ident" argument to systemd sink constructor #2328. Thanks @Delgan .
Special thanks to @tt4g for his support in answering community questions and issues.
Version 1.9.2
- Fixed clang compiler errors when using spdlog in c++20. Thanks @dkavolis (#2037, #2034).
- Fixed the Qt sinks to accurately trim the newline chars. Thanks @MadMax411 (#2015).
- Improved and simplified Qt sinks implementation. Thanks @mguludag (#2016, #2018).
- Fixed macro
SPDLOG_LEVEL_NAME_xxxto always translate to thespdlognamespace. Thanks @ashley-b for reporting (#2022). - Fixed typo in readme. Thanks @p-ranav (#2024).
- Fixed the MongoDB sink compilation in c++11. Thanks @jabartek (#2025).
- Fixed double include of same file in
thread_pool.h. Thanks @hbwang15 (#2026). - Ensure that the CMake exported package is relocatable. Thanks @daverigby (#2029).
- Remove
std::distanceusage for possible performance gain. Thanks @neheb (#2030). - Support of inclusion of
bin_to_hex.hin any order withspdlog.h. Thanks @dmerkushov (#2035). - Fixed install instructions for "header only" dir. Thanks @madeso (#2036).
Version 1.9.1
-
Support for {fmt}'s compile time validation of format strings (#2008). Thanks @dkavolis !
In C++20:spdlog::info("{:d}", "bad format_arg"); // should not compile
In C++14/17 - format string can be validated at compile time using FMT_STRING:
spdlog::info(FMT_STRING("{:d}"), "bad format_arg"); // should not compile
-
Fixed compilation error in Clang 13 with C++20 (#2011, #2013) Thanks @sjanel !
Version 1.9.0
What's new
- Support for {fmt} lib version 8.x.
- New MongoDB sink #1981 . Thanks @mguludag.
- New QTextEdit and QPlainTextEdit sinks #1986. Thanks @mguludag.
Fixes and Improvements
- Fixed #1790 (build failed with v140_xp, v141_xp toolset flags ). Thanks @LonghronShen.
- Fixed #1916 (fix Xcode compiler warning). Thanks @haifengkao.
- Made mutex member variable mutable #1918. Thanks @matt77hias.
- Changed c-style casts to reinterpret casts in tcp_client #1924. Thanks @ lnovey .
- Fix #533 . Rethrnow non std exceptions.
- Avoid harmless warning about unreachable statement in MSVS build #1930. Thanks @vadz.
- Fixed warning about testing _WIN64 which might be undefined #1931. THanks @vadz.
- Small code improvement (std::find) #1933. Thanks @neheb .
- Added support for CMake policy CMP0077 #1946. Thanks @jb-55,
- Allow compilation with nvc++ (and possibly PGI) #1958. Thanks @mlund .
- Fixed C++20 build resulting in deprecated implicit copy assignment operator warning #1961. Thanks @jb-55.
- Fix signed/unsigned mismatch in VS #1970 . Thanks @bansan85.
- Use std::function for the global error handler #1971. Thanks @SpriteOvO .
- Fixed dup sink compile warnings in older compilers with back_inserter.
- Added a color-terminal type #1984 to the color terminals list - to show colors in in RISC-V64 machines. Thanks @hctym1995.
Version 1.8.5
Fix compiling with C++17: remove constexpr on level_string_views. Thanks @stevenlunt (#1889).
Version 1.8.4
Remove version requirement from find_package when searching external fmt. #1890. Thanks @prince-chrismc
Version 1.8.3
- New hourly file sink . Creates new file every hour. Can be limited to retain only the last N files. Thanks @BVonk (#1763).
- New daily sink filename custom formatting. Users now can pass custom
strftimepattern to the log filename. For example:daily_logger_format_mt("loggername", "log-%Y%m%d:%H:%M.txt", hours, minutes);. Thanks @fawdlstty (#1847). - Fix windows event sink log compilation with UNICODE preprocessor. Thanks @iko1 (#1760).
- Add SPDLOG_DISABLE_DEFAULT_LOGGER as a CMake option. Thanks @shimaowo (#1765, #1766).
- Improve color terminal detection. Thanks @dominicpoeschko (#1768).
- Prevent windows color sink to leak windows headers into user code Thanks @Ryan-rsm-McKenzie (#1771).
- Ensure SPDLOG_FMT_EXTERNAL is honored in the bench program. Thanks @Ryan-rsm-McKenzie (#1773).
- Skip CMake module mode when finding fmt. Thanks @Ryan-rsm-McKenzie (#1774).
- Better support for "/" separators on Windows, and improve wchar filename test coverage. Thanks @sylveon (#1787).
- Open files with "ab" mode even if truncating to better support logrotate(8). Thanks @graydon (#1795).
- Fix compiling error and typo in hourly file sink. Thanks @sillykelvin (#1805).
- Add constexpr to SPDLOG_LEVEL_NAMES declaration. Thanks @gv-me (#1798).
- Initializer list style consistency. Thanks @ChristianPanov (#1807).
- Fix call to non-constexpr function (#1811).
- Better
numeric_limits<>::max/minfix whenSPDLOG_WCHAR_TO_UTF8_SUPPORTis defined. Thanks @nukeulater (#1819). - Fix to prevent MSVC warning flags to propagate to CUDA. Thanks @prateek9623 (#1825, #1829).
- Fix windows stdout_sink raising exception when used GUI Windows Apps that lack a console. Thanks @dgehri for reporting (#1828).
- Simplified wincolor sink code and intensify the red and yellow colors.
- Set default value to
registry::err_handler_to resolve Klocwork warning. . Thanks @jneruda (#1835). - Formatter bench: Fix compilation by avoiding function name decay mechanics. Thanks @MathiasMagnus (#1846).
- Add build2 package support in readme. Thanks @Klaim (#1851).
- Make sure __cplusplus is defined under msvc CMakeLists.txt
- Fixed VS2019 W4 cast warning (#1876).
- Fix warning whe the compilation flag
-Wswitch-defaultis present. Thanks @imSherlock (#1882).
Version 1.8.2
- Bump fmt to version 7.1.3
- Download automatically googlebenchmark for bench tests (#1709) Thanks @kitattyor.
- Add CPack debian package settings (#1712) and fix typo in comment (#1711). Thanks @ChristofKaufmann.
- Perfect forwarding fmt arguments (#1726). Thanks @dkavolis.
- Fix
dup_filter_sinkto log current log call's level, instead of the filtered log call's level (#1710). Thanks @Tridacnid for reporting. - Ability to get size of messages queue of async thread pool (#1735) Thanks @o2gy84.
- Add missing include (#1742). Thanks @jwittbrodt.
- Updated
bin_to_hexexample in the readme (#1744). Thanks @ArnaudBienner. - Fix async periodic flush test (#1749). Thanks @bluescarni.
Version 1.8.1
- Fixed
load_env_levels()andload_argv_levels()#1680 (thanks @Tridacnid ). - Fixed
stdout sinkthat produced extra carriage returns on Windows #1675 (thanks @chris-t-w ). - Fixed
msvc_sinkincluding windows.h #1667 (thanks @Ryan-rsm-McKenzie). - Fixed
stopwatch's clock to usechrono::steady_clock#1676 (thanks @SuperWig). - Added support for Rcpp (R cpp compiler) #1685 (thanks @eddelbuettel).
Version 1.8.0
- Upgraded bundled fmt to version 7.0.3.
- New stopwatch utility for quick & easy logging of elapsed time:
#include "spdlog/stopwatch.h"
void stopwatch_example()
{
spdlog::stopwatch sw;
// do some work..
spdlog::debug("Elapsed: {} seconds", sw); // => "Elapsed 0.005116733 seconds"
spdlog::debug("Elapsed: {:.3} seconds", sw); // => "Elapsed 0.005 seconds"
}- Raised CMake requirement to 3.10 and cleanup CMakeLists.txt (#1624). Thanks @tambry.
- Added
get_level()andshould_log()functions to thespdlog::namespace (#1628). Thanks @eyalroz. - Fixed tcp_client for macOS (#1640). Thanks @dkruempe.
- Fixed
cfg::load_env_levels()function declaration (#1651). Thanks @bareya. - Updated Fedora install info in the readme (#1653). Thanks @gk6k6k.
- Fixed #1617 (aligned function pattern flag is broken). Thanks @VelocityRa for reporting.
- Fixed #1581 (compiling under msys in win10).