Newlib C library (https://sourceware.org/newlib/) has a configuration
option to add tm_gmtoff field to the tm structure. Not all the
platforms supported by newlib enable this option, and spdlog doesn't
compile on such platforms due to missing tm_gmtoff field.
Fix this by checking for `__NEWLIB__` and `__TM_GMTOFF` and enabling
calculate_gmt_offset.
On musl, off_t is 64bit always ( even on 32bit platforms ), therefore
using LFS64 funcitons is not needed on such platforms. Moreover, musl
has stopped providing aliases for these functions [1] which means it
wont compile on newer musl systems. Therefore only use it on 32bit
glibc/linux platforms and exclude musl like cygwin or OSX
[1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Use the new blocking dequeue to avoid unnecessarily waking up the
thread pool every 10s.
Fixes#2587 by replacing std::condition_variable::wait_for with
std::condition_variable::wait as a workaroung for gcc 11.3 issue 101978.
Co-authored-by: Alok Priyadarshi <alokp@dexterity.ai>
* dup_filter_sink adds parameters to enable setting the level of skipped logs
* rename the param name 'level' to 'notification_level'
Co-authored-by: zhuyadong <zhuyadong@kedacom.com>
* Support compile-time format string checking with std::format
* Fix pre-VS 17.5 compilation
* Fix compilation without wchar_t support
* What am I doing
* Bring back fmt optimization
* Move to_string_view to common.h
* Fix SPDLOG_CONSTEXPR_FUNC emitting duplicate symbol errors when building in C++11
* Also add inline on VS 2013
* Appender doesn't work on wide strings
There can only be one instance in the whole program, so programs that use the
Mongo sink and also separately use MongoCXX may have problems if the Mongo sink
owns the instance. MongoCXX recommends that the main application manage its own
instance so configuration parameters can be passed to the constructor:
http://mongocxx.org/api/current/classmongocxx_1_1instance.html
However, this commit is not a breaking change. If no instance has been created
at construction time, the Mongo sink will still create and own the instance.
Filtering to a certain log level or above, a useful operation, can now be done
with an integer comparison as opposed to comparing to a list of strings in the
database query.