2
0
mirror of https://github.com/boostorg/log.git synced 2026-02-13 12:32:14 +00:00
Commit Graph

97 Commits

Author SHA1 Message Date
Andrey Semashev
b5969e5233 Changed adaptive_mutex to use pthread_mutex_t. On systems that support it (Linux, FreeBSD, OpenBSD) PTHREAD_MUTEX_ADAPTIVE_NP is used, otherwise the default mutex type. This greatly imporoves performance in case of heavy thread contention: 100 threads - x2.7 records per second, 1000 threads - x4. Less contended cases are mostly unaffected. 2015-11-15 17:18:48 +03:00
Andrey Semashev
5434177322 Renamed spin_mutex.hpp to adaptive_mutex.hpp. 2015-11-15 16:12:13 +03:00
Andrey Semashev
8da446c6d0 Made sure that header.hpp is included last. Also removed the unneeded set_content(0); on TLS creation. 2015-11-10 01:05:51 +03:00
Andrey Semashev
f9dfc45d85 Cleaned up the TLS implementation to avoid reinterpret_casts and associated warnings about violating strict aliasing rules. 2015-11-10 00:59:21 +03:00
Andrey Semashev
6845eb43cc Use Boost.Atomic for atomic operations. Remove obsolete atomic_queue.hpp header. 2015-10-15 22:52:06 +03:00
Andrey Semashev
c7f18fd7ab Replaced BOOST_LOG_USE_WINNT6_API macro with BOOST_USE_WINAPI_VERSION. The target Windows version is now selected with the WinAPI submodule. Also simplified a few preprocessor checks and updated docs. 2015-10-14 22:04:02 +03:00
Andrey Semashev
d242967b52 Added a link to Boost.DateTime ticket for the facet visibility bug. 2015-10-04 23:05:43 +03:00
Andrey Semashev
284d5e6139 Added a workaround for incorrect file name generation in text file sink backend, when the file name contains date/time placeholders. Fixes #11691. 2015-10-04 18:37:05 +03:00
Andrey Semashev
63f7d70a07 Mode robust check for _POSIX_TIMERS. 2015-08-27 17:47:05 +03:00
Ed Schouten
42e6f26c43 Enable the use of clock_gettime() on Nuxi CloudABI.
Just like OpenBSD and HURD, CloudABI provides a clock_gettime() function
without implementing timer_*(). It therefore cannot set _POSIX_TIMERS.
2015-08-27 15:54:58 +02:00
Andrey Semashev
e8c6688fcd Fixed compilation for Android. Fixed #11559. 2015-08-23 14:06:17 +03:00
Andrey Semashev
87db169efe Fixed compilation with clang on Linux. 2015-07-27 14:49:33 +03:00
Andrey Semashev
f9338127b7 Fixed compilation on MSVC. More correct C++11 code conversion facets detection. Updated unhandled_exception_count() to use std::uncaught_exceptions() from C++17, where available (MSVC-14, currently). 2015-07-26 17:38:15 +03:00
Andrey Semashev
92f565f911 Corrected snprintf use. 2015-07-26 14:04:16 +03:00
Andrey Semashev
7d7b70e78b The default formatter has been rewritten to avoid using Boost.Phoenix.
This reduces compile times and binary sizes. It should also fix compilation with compilers not able to handle Boost.Phoenix (see #11200).

Also, date/time format has changed. The default formatter will produce dates with numeric months instead of abbreviated month names (see #8839).

The standard attribute value types supported by default parsed formatters now include char16_t and char32_t, when available. This required to add new code conversion routines.

Added Boost.PP sequences with the standard types. These are used to generate the corresponding type sequences, which is faster to compile than doing this with Boost.MPL.
2015-07-25 23:58:02 +03:00
Andrey Semashev
ac70fa34c1 Removed use of auto_ptr. 2015-07-18 20:32:07 +03:00
Andrey Semashev
cb68c029e2 Made message_file parameter optional if registration parameter is never. It is not used anyway. 2015-07-17 20:54:41 +03:00
Andrey Semashev
21e60917cc Corrected comment. 2015-07-17 03:22:22 +03:00
Andrey Semashev
2d8378a6e2 Fixes 11459. Added function exports. 2015-07-10 22:53:02 +03:00
Andrey Semashev
2c26ec929a Minor code simplification. 2015-07-05 22:18:15 +03:00
Andrey Semashev
30e7f03631 Fixes #11398. Improved the event synchronization primitive.
The updated implementation relies on Boost.Atomic for atomic operations which provides better portability. On Linux the implementation uses futexes directly, which should improve performance slightly. The event implementation choice should be more stable across different compiler versions because of these changes.
2015-07-05 22:00:03 +03:00
Andrey Semashev
c98b1f459a Fixes #11446. Add support for OpenBSD (clock_gettime). 2015-07-05 19:06:18 +03:00
Andrey Semashev
7dea4539d6 Reverted the TLS config enforcement for Boost.ASIO.
Partially reverts 89474f4a80 and a9738b1249. During the discussion on the ML, there was opinion that Boost.Log should not influence other libraries' configuration. This can cause ODR violations and cause surprises to the users.

The long term solution will be removal of Boost.ASIO and re-implementing network abstraction layer. For now users are required to configure each library separately. This requirement has been documented.
2015-07-05 18:52:29 +03:00
Andrey Semashev
d720a11e3b Fixed #11190. Constructing attribute value set from attribute sets or inserting elements could invalidate elements that were in the container. 2015-04-25 22:49:01 +03:00
Andrey Semashev
34e68c7b5a Ported from std::random_shuffle and std::rand to Boost.Random and custom random_shuffle implementation. 2015-03-29 20:12:58 +03:00
Andrey Semashev
f1337c6fbc Ported library to Boost.TypeIndex. This solves symbol visibility problems with Clang on Linux when the library is built with -fvisibility=hidden. 2015-03-28 21:20:55 +03:00
Andrey Semashev
2e7eb45f48 Removed unused data member. 2015-03-28 20:12:19 +03:00
Andrey Semashev
f74a7df2df Fixed #11148. Fixed incorrect behavior of attribute_value_set::size() if a large number of attribute values are inserted into the set. 2015-03-28 19:04:31 +03:00
Andrey Semashev
18df30ed33 Followup for the previous commit. 2015-03-25 00:48:52 +03:00
Andrey Semashev
89474f4a80 Define ASIO config macros before using it. Use hidden visibility by default.
Boost.ASIO should not use compiler-based TLS unless it is allowed by the user of Boost.Log, otherwise the Boost.Log config option has no practical effect.
As a result, it becomes more probable that Boost.ASIO will be compiled with different config macros in Boost.Log and user's code. As a partial solution use
hidden visibility when building Boost.Log shared libs and ensure it uses its local copy of Boost.ASIO. Added a config test to detect support for visibility
command line option.

Also adjusted project names of other config tests to avoid possible name clashes with other libraries and Boost.Build infrastructure.

MSVC warning 4003 is now silenced on all compiler versions as apparently not only MSVC 8 is affected.
2015-03-25 00:32:36 +03:00
Andrey Semashev
30ff0390ce Fixed #11106. In some cases inserted attribute set elements could invalidate the existing elements preventing them from being found. 2015-03-15 15:00:53 +03:00
Andrey Semashev
4751a16536 Added compilation workarounds for MSVC 2015 CTP6. 2015-03-01 21:22:46 +03:00
Andrey Semashev
7ebfd3b6c4 Fixes #11016. Text file sink no longer creates lots of empty files if there is no free space on the file system. 2015-02-14 19:19:42 +03:00
Andrey Semashev
3ef16ab89b Fixed compilation on GNU Hurd. 2015-01-25 18:06:06 +03:00
Andrey Semashev
5bb604ee39 Updated copyright dates. 2015-01-25 17:32:33 +03:00
Andrey Semashev
59f5bcdcad Fixes #10926. Generalized id formatting.
Also, different hex-based formatting routines now use the common
character table, which should reduce binary size a little.
2015-01-25 17:27:41 +03:00
Andrey Semashev
66e7ade8ec Fixed thread id casting to integer on big-endian platforms. 2014-12-10 23:08:03 +03:00
Andrey Semashev
45a91ff2be Fixed thread id formatting. 2014-11-27 20:48:16 +03:00
Andrey Semashev
755b2c27b7 Fixes #10700. Don't use vsnprintf_s on MSVC as it does not behave as the standard vsnprintf. Also corrected error checking for snprintf in different places. 2014-10-30 03:19:00 +03:00
Andrey Semashev
4cb6d0ca7d Fixes #10638. Suppress exceptions from async sinks by default when initializing from settings. 2014-10-12 15:06:16 +04:00
Andrey Semashev
d79086e9fb Minor performance optimization. 2014-08-22 21:49:44 +04:00
Andrey Semashev
0f63e93cf6 Remove non-ASCII characters. 2014-07-08 14:47:13 +04:00
Andrey Semashev
d90b457110 Added support for MSVC 14 CTP. 2014-07-05 20:19:40 +04:00
Andrey Semashev
9892e3859f Disabled 'may be used uninitialized' warnings for gcc caused by boost::optional. 2014-06-23 13:06:27 +04:00
Andrey Semashev
dfb3049a7c Extracted text_multifile_backend implementation to a separate file. 2014-06-22 18:46:17 +04:00
Andrey Semashev
7516f00cde Use low-level Qi extractors instead of qi::parse to reduce compile times and binary sizes. 2014-06-22 18:19:12 +04:00
Andrey Semashev
7e8ada3859 Added a missing include. 2014-06-22 02:40:18 +04:00
Andrey Semashev
a0ec391663 Removed most of Boost.Spirit from the parameter partsers to speedup compilation and reduce binary sizes. This also significantly reduces memory consumption in case of Intel Compiler (down by ~600MiB). 2014-06-22 02:01:23 +04:00
Andrey Semashev
58cca56915 Added noexcept specifications. Simplified code in some cases. 2014-06-21 20:57:18 +04:00
Andrey Semashev
4b137ed869 Fixed incorrect element insertion.
The inserted attributes and attribute values could sometimes be left not-findable by find() method and other methods that rely on it. The elements were still obtainable through iteration.
2014-06-21 20:54:11 +04:00