Commit Graph

2343 Commits (1245bf8e8a19d914271df03124da9593f3634a9c)

Author SHA1 Message Date
gabime 95b8ee9b32 Remove comment in qt_sinks.h 2 years ago
gabime d7985e3965 Update comment about qt_color_sink 2 years ago
gabime dfcb74b129 Added default color handling to qt_color_sink 2 years ago
gabime 6a96c7f902 Added qt_color_sink 2 years ago
gabime 6940f4fd46 Added some comments to qt_sinks.h 2 years ago
gabime 1f1897e3a4 Clean qt_sink code 2 years ago
gabime 0f50ad92d6 Clean qt_sink code 2 years ago
gabime 5384512f25 Store MetaMethod object in qt_sink for better performance 2 years ago
gabime 230cad163d Fixed qt_sink 2 years ago
Gabi Melman 3a6ee663ba
Update qt_sinks.h 2 years ago
Gabi Melman 931cd2fb54
Update qt_sinks.h 2 years ago
Gabi Melman 8fdcf0365b
Update qt_sinks.h 2 years ago
Ulmo-F 32701af60b
qt_sink: add some warning on its usage (#2753)
* qt_sink: add some warning on its usage

* qt_sink: add some warning on its usage - fix

---------

Co-authored-by: Benoit FANCHON <bfanchon@nanoxplore.com>
2 years ago
Gabi Melman 31cf79a70d
Remov foreward to standard vformat_to 2 years ago
Eli Boyarski 62a4b8ce4e
Fix fmt build (#2744) 2 years ago
gabime ea1af20840 Update error message in default error handler 2 years ago
gabime 1fba68bfe2 Catch exceptions from async logger. Fix #2618 2 years ago
Gabi Melman dd173bc544
Update daily_file_sink.h 2 years ago
Gabi Melman fcc8a95a95
Update daily_file_sink.h 2 years ago
Gabi Melman 9fcf609b67
Update daily_file_sink.h 2 years ago
Bernd Ritter af1785b897
Removes special format handling for fmt. (#2736)
* Removes special format handling for fmt. Regains test compatibility with fmt
1.10.0.

fixes #2735

* reverted std::vector back to filename_t and used pointer to array start likewise as fmt's implementation uses

* calc_filename buffer increase softened, exception is throw if buffer exceeds 4k, filename parameter renamed to match intend.

* calc_filetime based on std::put_time for simpler implementation
2 years ago
James Ruan e4f92bed48
fix ringbuffer_sink moving warning (#2722) 2 years ago
Sergey Fedorov c65aa4e488
os-inl.h: fix for missing pthread_threadid_np (#2715) 2 years ago
Gabi Melman e539d6ae42
Update registry-inl.h fix #2691 2 years ago
H1X4 0ca574ae16
fix build for master fmt (non-bundled) (#2694)
* fix build for master fmt (non-bundled)

* update fmt_runtime_string macro

* fix build of updated macro
2 years ago
SCC/楊志璿 42d1f40a18
Fix stdout_sink_base::log's behavior inconsistency (#2646)
* Fix stdout_sink_base::log's behavior inconsistency

It will flush every time when it if not defined _WIN32, but not in
Windows family.
We viewed the commit #48d4ed9 for fixing issue #1675 .
It seems missing this flushing operation in mistake.

* Use fflush at all operating system

* Remove redundant fflush from stdout_sink_base

---------

Co-authored-by: scc <scc@teamt5.org>
2 years ago
Luis Angerstein 1262a249a6
Fix os namespace in systemd_sink.h (#2668)
* Fix os namespace in systemd_sink.h

* Remove spdlog:: prefix from os::thread_id() call
3 years ago
Gabi Melman 2d57e3b57e
Update and rename kafka_skin.h to kafka_sink.h 3 years ago
听风 b25aaecf6a
feat(kafka_skin.h): kafka log support (#2655)
* feat(kafka_skin.h): kafka log support

add kafka log support

* refactor(kafka_skin.h): remove producer_  check

remove producer_  check
3 years ago
Gabi Melman 262acfdeb5
Update os-inl.h 3 years ago
Gabi Melman a4d8817745
move include cassert 3 years ago
Gabi Melman 66407f5b48
Better handling of utf to wchar 3 years ago
璀境石 4641347c3f
msvc_sink: support utf8 (#2651)
* msvc_sink: support utf8
3 years ago
afshinpir 51bcff820e
Added `apply_logger_env_levels` (#2649)
This method applies levels which is set by environment variable
`SPDLOG_LEVEL` to the a single controller. Usefull for loading
configuration into manually created loggers.
3 years ago
Charles Hardin 7372596126
Add optional TID definition to the systemd sink send (#2619)
From the systemd.journal-fields the TID is a user defined
field passed directly from the clients and stored in the
journal. Adding the arguement in the journal send to support
that storage option in the journal.
3 years ago
Zeus James da14258533
Fix MinGW build issue on example (#2642)
* Fix MinGW build issue on example #2638

* Move the cmake change to example\CMakeLists.txt

* Update CMakeLists.txt on the example
3 years ago
Li Z 927cc29444
Fix unexpected delimiter at start of line in to_hex formatter (#2627) 3 years ago
Mohammad Ali 3cab260814
Add a trivial callback sink (#2610)
Add a trivial callback sink
3 years ago
Gabi Melman 654dbc5c32
Update os.h 3 years ago
Gabi Melman 78e86ba01f
Update os-inl.h 3 years ago
Gabi Melman 435827fe5a
Update os.h 3 years ago
espkk f29f369a12
Add sync to file_helper (#2343) 3 years ago
albert-github 5a63426d1c
Spelling corrections (#2606)
Spelling corrections v1.x
3 years ago
Robin Lindén 6df64c6c34
Fix -Wshadow warnings in spdlog::sinks::dist_sink (#2599)
This is similar to fbba6dff20 but fixes a
few member functions missed in that commit.
3 years ago
Arnar Bjarni Arnarson 0b9ff5210a
Fix type of event id in win_eventlog_sink (#2598)
Co-authored-by: Arnar Bjarni Arnarson <arnar@menandmice.com>
3 years ago
Ivan Grokhotkov 85a009ad64
Support newlib C library configurations without tm_gmtoff field (#2600)
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.
3 years ago
Khem Raj 287a00d364
Do not use LFS64 functions on linux/musl (#2589)
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>
3 years ago
Vasiliy Kulikov 3c93f7690a
fix build: fix for freebsd (#2590)
The build error was:
  include/spdlog/details/tcp_client.h:106:31: error: use of undeclared identifier 'IPPROTO_TCP'
3 years ago
Alok Priyadarshi a4e9917575
feat(mpmc_blocking_q): add blocking dequeue without timeout (#2588)
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>
3 years ago
NaDDu ff88b13c35
Fixed variable name (#2573)
* fixed variable name

* Changed the variable name from check_debbugger_present_ to check_debugger_present_.

Co-authored-by: cpp <c.pp@navercorp.com>
3 years ago
György Katona 8512000f36
Unnecessary backtrace begin/end logs (#2568)
* add empty getter function to tracer

* add unit test to check empty tracer

Co-authored-by: Gyorgy Katona <gykatona@logmein.com>
3 years ago
zydxhs f0cd9d1530
dup_filter_sink adds parameters to enable setting the level of skipped logs (#2563)
* 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>
3 years ago
zydxhs 50e8b2d982
fix dup_filter_sink lose source_loc (#2549)
Co-authored-by: zhuyadong <zhuyadong@kedacom.com>
3 years ago
Charles Milette 4f80077339
Support compile-time format string checking with std::format (#2544)
* 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
3 years ago
Eli Boyarski 18495bf25d
Bundle fmt 9.1.0's std.h, and provide a header to include either it or the external fmt's version (#2539) 3 years ago
Gabi Melman ad0e89cbfb
Version 1.11.0 3 years ago
Gabi Melman 7aa00607ea
chrono.h: Remove warning suppression
Not needed since fmt 9.x
3 years ago
gabime bd5a81df70 Check IsDebuggerPresent in msvc_sink before doing work. Fix #2408 3 years ago
gabime 4accce5d7b Try again fixing fmt::vformat_to when SPDLOG_WCHAR_TO_UTF8_SUPPORT is defined 3 years ago
gabime 4d7308f26d Fixed msvc warning C4800 in win_eventlog_sink 3 years ago
gabime 678a79c0be Fixed syntax error from prev commit 3 years ago
gabime fbba6dff20 Fix #2431 3 years ago
gabime fdb1f5926e Fix fmt::vformat_to when SPDLOG_WCHAR_TO_UTF8_SUPPORT is defined 3 years ago
gabime b59b4a2b45 Rvert suppressing msvc2017 warnings and fix ci instead 3 years ago
gabime 6c975fa13b Replace fmt::detail::vformat_to(buf,..) with fmt::vformat_to(fmt::appender(buf) 3 years ago
gabime c627c66560 Replace fmt::detail::vformat_to(buf,..) with fmt::vformat_to(fmt::appender(buf) 3 years ago
gabime 130ff0c8db enable the ostream formatting for backward compatibility with fmt 8.x 3 years ago
gabime 14a29c03eb suppress warning 4307 when including format-inline.h under msvc 2017 3 years ago
gabime 070dd181df clang format 3 years ago
gabime 3499dfeeb4 Bump bundled fmtlib to version 1.9.1 3 years ago
刘耘呈 3c0e036cc9
Use 'SPDLOG_FMT_RUNTIME' to fix compilation error throwed MSVC and fmt 9.1.x (#2517)
* Use 'SPDLOG_FMT_RUNTIME' to fix compilation error throwed MSVC and fmt 9.1.x

* Fix #2512
3 years ago
Sandor Magyar 5fba2867f5 Change mongocxx::exception handler to std::exception 3 years ago
Sandor Magyar b5d361fc21 clang-format mongo_sink.h 3 years ago
Sandor Magyar 0674e79066 Improve arg passing and exceptions in mongo_sink 3 years ago
Sandor Magyar 5f67ef4d6f Remove pointless try block in mongo_sink 3 years ago
Sandor Magyar 1bb1f05d73 Adjust MongoCXX instance handling in mongo_sink
Changes suggested by @gabime on #2519
3 years ago
Sandor Magyar a3c47cc682 Don't force Mongo sink to own MongoCXX instance
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.
3 years ago
Sandor Magyar 0145223be1 Add numerical level to Mongo sink for easier queries
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.
3 years ago
Sandor Magyar f3b61c70ba Catch exception by reference to fix -Wcatch-value warning 3 years ago
Daniil 93b9132b0a Replace iterator difference with std::distance 3 years ago
offa 06f9953fa8 Workaround deprecation warning on Clang with C++20 3 years ago
Nigel Stewart 1eaf98cc10 SPDLOG_NO_SOURCE_LOC implementation refinement 3 years ago
Nigel Stewart 57e5814364 SPDLOG_NO_SOURCE_LOC support for omitting __FILE__, __LINE__ and SPDLOG_FUNCTION information 3 years ago
Gabi Melman f44fa31f51
Fix #2434 3 years ago
Simon-Janos 26f69ee9d2 Re-introduce redundant std::move at return for old GCC (before version 5) inside an ifdef for e.g. CentOS 7 3 years ago
Shen-Ta Hsieh 5f8877b665
Explicitly casting level_enum to size_t.
See commit 2a4c34b878
3 years ago
Lucas CHOLLET dfe1009080 Expend support for any std::chrono::duration in `spdlog::flush_every`
This allows things like:

spdlog::flush_every(std::chrono::minutes(10));
spdlog::flush_every(std::chrono::milliseconds(100));
3 years ago
Gabi Melman 6c95f4c816
Fix #2419 by documenting the set_pattern behaviour 3 years ago
Gabi Melman 866fdaa6db
Merge pull request #2399 from bergen4/v1.x
add overrun_counter reset function
3 years ago
Gabi Melman 03315853df
Merge pull request #2386 from panzhongxian/v1.x
Romove the empty file if no log in first period in hourly logger
3 years ago
bergen 1f608a81e8 add overrun reset function 3 years ago
bergen 822f972842 update 3 years ago
Alexandre Pereira Nunes beefee7929
Remove redundant std::move at return (triggers -Wredundant-move in Gcc, at least) 3 years ago
panzhongxian 1eafcfab70 Romove the empty file if no log in first period in hourly logger 3 years ago
panzhongxian 1f0c2f9f36 Remove try_lock from null_mutex. 3 years ago
Gabi Melman fc93ddbefe
Merge pull request #2384 from aengusjiang/v1.x
fix error: cannot bind lvalue to right reference
3 years ago
John Armstrong 799802f93b Add FMT_STRING to allow compilation with FMT_ENFORCE_COMPILE_STRING 3 years ago
Aengus.Jiang 3d7ee64661 fix error: cannot bind lvale to right reference 3 years ago
Gabi Melman 0d8197cc9d
Update common.h
Init file event handlers to nullptr
3 years ago
Gabi Melman 0ef5228a77
Merge pull request #2372 from kslattery/v1.x
C++14 build fixes for older gcc #2333
3 years ago
Kevin Slattery d89a1e66d8 Add default file-event_handler callbacks. #2374 3 years ago
Kevin Slattery d3dee23e6c Remove new macro, update example with correct way to specify fmt lib namespace when fmt_lib namespace alias cannot be used. 3 years ago
Kevin Slattery 5f5e70e96e C++14 build fixes for older gcc #2333 3 years ago
gabime 128cbe5a06 clang-format 3 years ago
gabime 6d587f5181 Use fmt::detail::vformat_to(buf, ...) since it is ~20ns faster than fmt::vformat_to(std::back_inserter(buf),..) 3 years ago
Jeeyong Um c03c925e29 Copy the value of need_localtime when cloning pattern_formatter 3 years ago
Jeeyong Um 38929f856d Allow overriding need_localtime for custom formatter 3 years ago
Timo Lange 2eedf1fa28 remove usage of forward args 3 years ago
Timo Lange 0a875d7b2d use __android_log_write or __android_log_buf_write based on template paramter 3 years ago
Gabi Melman 173d06578f
Fixed move in ringnuffer_sink 3 years ago
Charles Milette 8338a48c5b
Remove fmt_helper::to_string 3 years ago
Charles Milette cd4f6c1466
Replace fmt_helper::to_string by a macro 3 years ago
Charles Milette 37dd6bb159
Address PR review comments 3 years ago
Charles Milette 714cf12822
Add fmt_helper.h include to includes.h and os-inl.h 3 years ago
Charles Milette ee00f2e07d
Remove fmt_helper.h include from logger.h 3 years ago
Charles Milette 3cf94968e7
Add missing include 3 years ago
Charles Milette ebeb3707b1
Switch to vformat_to
Drive-by: reduce the amount of occurences of #ifdef SPDLOG_USE_STD_FORMAT
3 years ago
espkk e6265c04ae Make file_event_handlers an aggregate 3 years ago
gabime 76fb40d954 clang format 3 years ago
gabime 757e9f8ec6 Bump version to 1.10.0 3 years ago
Delgan 36b4b9dac9 Add optional "ident" argument to systemd sink constructor 3 years ago
Delgan c1aeefb0c9 fixup! Add option to enable formatting of systemd sink
Add default value to "systemd_sink" contructor
3 years ago
Delgan 3c1ee54112 Add option to enable formatting of systemd sink 3 years ago
risa2000 52dc210423
Fixed compiler error when building on Windows with #define UNICODE
The original `InetPton` expands to `InetPtonW` when building with UNICODE defined and expects the string parameter to be wchar_t. On the other hand macro `TEXT()` just adds prefix `L` to a string literal (just making it wchar_t literal). The proper way here would be converting `host.c_str()` result from UTF-8(?) into wchar_t (UNICODE) string, but this seems to be an overkill since the host is typically an IP address or a host/domain name. So assuming an ASCII input should be reasonably safe.
3 years ago
Andrey Bugaevskiy 5ee969e4f6 Fix fopen_s error reporting with PREVENT_CHILD_FD 4 years ago
Adrien Bertrand 9cd9c98f59
pattern_formatter-inl: fix reorder-ctor warning
Fix `Wreorder-ctor` warning

```
spdlog/pattern_formatter-inl.h:1028:7: error: field 'custom_handlers_' will be initialized after field 'need_localtime_' [-Werror,-Wreorder-ctor]
    , custom_handlers_(std::move(custom_user_flags))
      ^
```

Move the initialization of `need_localtime_(true)` right after `pattern_time_type_` as expected.
4 years ago
Surfy Cui a732a0dc85 Limit max number of rotating files to 200000, not max size 4 years ago
Gabi Melman 4c2ce2c82c
Update rotating_file_sink-inl.h 4 years ago
gabime 4cea9b8729 Limit max number of rotating files to 200000. Fix #1905 4 years ago
gabime 53c9b70ea3 Fix #2211 4 years ago
gabime 71105e0b07 Fixed #2227 4 years ago
gabime c432fdd987 Bump fmt to version 8.1.1 and run clang-format 4 years ago
gabime d8199b607d Bump fmt to version 8.1.1 and run clang-format 4 years ago
Kyuheon Kim d497f494f0 Apply pattern width to one of the source information fields while missing source information 4 years ago
gabime 0b48976be4 flush before rotating 4 years ago
gabime 5b03dc1796 Throw if rotating_file_sink constructor receives max_size==0 as arg 4 years ago
gabime ec8b0beddd comment 4 years ago
gabime 7536192058 Fix #2261 4 years ago
gabime 5afff7821f throw if flush failed 4 years ago
Pixel 666bec5017
removed unneeded spaces
On Line 83 someone probably misclicked tab just removed that tab
4 years ago
Gabi Melman 2382c87aa3
Update pattern_formatter-inl.h 4 years ago
doug1234 28b9adf794 Added the last few suggested changes. 4 years ago
doug1234 584d77237e Several minor improvements based on code review suggestions. 4 years ago
doug1234 d9ec02d400 Fix mistake in previous checkin. 4 years ago
doug1234 5568b16ed5 Resetting the needs time flag when setting a pattern. 4 years ago
doug1234 eab522e743 Now only getting the date if formater needs to display date related information. 4 years ago
Dave Rigby 2a4c34b878 Allow forward-declaration of level_enum
spdlog::level::level_enum cannot be forward-declared at present, as
the definition does not specify an underlying type.

To allow users to make use of <spdlog/fwd.h> to refer to
level::level_enum without pulling in all of <spdlog/common.h> (which
can be quite costly), specify an underlying type (int) for
level::level_enum, then add a forward-declaration for it to
spdlog/fwd.h.

Note this required explicitly casting level_enum to size_t within ansicolor_sink due to sign-conversion errors:

    implicit conversion changes signedness: 'const level::level_enum' to 'std::__1::array::size_type' (aka 'unsigned long') [-Wsign-conversion]

It would appear that an enum with an unspecified underlying type is in
some kind of superposition - it can be treated as both signed _and_
unsigned - using an underlying type of 'unsigned int' triggers even
more warnings of this kind...
4 years ago
Sprite 3540ba32e9 Reset current size if rotated files on open 4 years ago
Tim Blechmann 626efad307 spdlog: fmt - support `std::span` in `to_hex`
`std::span` does not have `const_iterator`. this prevents `to_hex` from
being used with `std::span<>`. to fix this, we provide an explicit
overload.

compare: https://cplusplus.github.io/LWG/issue3320
4 years ago
Vladislav Nepogodin a087dee98a
🚧 fix building with c++11 4 years ago