[library Boost.Log
    [quickbook 1.5]
    [version v2]
    [authors [Semashev, Andrey]]
    [copyright 2007 - 2024 Andrey Semashev]
    [license
        Distributed under the Boost Software License, Version 1.0.
        (See accompanying file LICENSE_1_0.txt or copy at
        [@http://www.boost.org/LICENSE_1_0.txt]).
    ]
    [id log]
    [source-mode c++]
]

[c++]

[/ Links to external resources /]
[def __boost_config__ [@https://www.boost.org/doc/libs/release/libs/config/doc/html/index.html Boost.Config]]
[def __boost_atomic__ [@https://www.boost.org/doc/libs/release/libs/atomic/doc/html/index.html Boost.Atomic]]
[def __boost_smart_ptr__ [@https://www.boost.org/doc/libs/release/libs/smart_ptr/doc/html/smart_ptr.html Boost.SmartPtr]]
[def __boost_function__ [@https://www.boost.org/doc/libs/release/doc/html/function.html Boost.Function]]
[def __boost_filesystem__ [@https://www.boost.org/doc/libs/release/libs/filesystem/doc/index.htm Boost.Filesystem]]
[def __boost_system__ [@https://www.boost.org/doc/libs/release/libs/system/doc/html/system.html Boost.System]]
[def __boost_date_time__ [@https://www.boost.org/doc/libs/release/doc/html/date_time.html Boost.DateTime]]
[def __boost_date_time_format__ [@https://www.boost.org/doc/libs/release/doc/html/date_time/date_time_io.html#date_time.format_flags Boost.DateTime]]
[def __boost_thread__ [@https://www.boost.org/doc/libs/release/doc/html/thread.html Boost.Thread]]
[def __boost_regex__ [@https://www.boost.org/doc/libs/release/libs/regex/doc/html/index.html Boost.Regex]]
[def __boost_xpressive__ [@https://www.boost.org/doc/libs/release/doc/html/xpressive.html Boost.Xpressive]]
[def __boost_parameter__ [@https://www.boost.org/doc/libs/release/libs/parameter/doc/html/index.html Boost.Parameter]]
[def __boost_format__ [@https://www.boost.org/doc/libs/release/libs/format/index.html Boost.Format]]
[def __boost_preprocessor__ [@https://www.boost.org/doc/libs/release/libs/preprocessor/doc/index.html Boost.Preprocessor]]
[def __boost_bind__ [@https://www.boost.org/doc/libs/release/libs/bind/doc/html/bind.html Boost.Bind]]
[def __boost_lambda__ [@https://www.boost.org/doc/libs/release/doc/html/lambda.html Boost.Lambda]]
[def __boost_phoenix__ [@https://www.boost.org/doc/libs/release/libs/phoenix/doc/html/index.html Boost.Phoenix]]
[def __boost_spirit__ [@https://www.boost.org/doc/libs/release/libs/spirit/classic/index.html Boost.Spirit]]
[def __boost_spirit2__ [@https://www.boost.org/doc/libs/release/libs/spirit/doc/html/index.html Boost.Spirit2]]
[def __boost_optional__ [@https://www.boost.org/doc/libs/release/libs/optional/doc/html/index.html Boost.Optional]]
[def __boost_variant__ [@https://www.boost.org/doc/libs/release/doc/html/variant.html Boost.Variant]]
[def __boost_intrusive__ [@https://www.boost.org/doc/libs/release/doc/html/intrusive.html Boost.Intrusive]]
[def __boost_range__ [@https://www.boost.org/doc/libs/release/libs/range/doc/html/index.html Boost.Range]]
[def __boost_iostreams__ [@https://www.boost.org/doc/libs/release/libs/iostreams/doc/index.html Boost.IOStreams]]
[def __boost_fusion__ [@https://www.boost.org/doc/libs/release/libs/fusion/doc/html/index.html Boost.Fusion]]
[def __boost_mpl__ [@https://www.boost.org/doc/libs/release/libs/mpl/doc/index.html Boost.MPL]]
[def __boost_exception__ [@https://www.boost.org/doc/libs/release/libs/exception/doc/boost-exception.html Boost.Exception]]
[def __boost_scope_exit__ [@https://www.boost.org/doc/libs/release/libs/scope_exit/doc/html/index.html Boost.ScopeExit]]
[def __boost_any__ [@https://www.boost.org/doc/libs/release/doc/html/any.html Boost.Any]]
[def __boost_property_tree__ [@https://www.boost.org/doc/libs/release/doc/html/property_tree.html Boost.PropertyTree]]
[def __boost_asio__ [@https://www.boost.org/doc/libs/release/doc/html/boost_asio.html Boost.Asio]]
[def __boost_move__ [@https://www.boost.org/doc/libs/release/doc/html/move.html Boost.Move]]
[def __boost_locale__ [@https://www.boost.org/doc/libs/release/libs/locale/doc/html/index.html Boost.Locale]]
[def __boost_type_index__ [@https://www.boost.org/doc/libs/release/doc/html/boost_typeindex.html Boost.TypeIndex]]
[def __boost_utility__ [@https://www.boost.org/doc/libs/release/libs/utility/doc/html/index.html Boost.Utility]]
[def __boost_quickbook__ [@https://www.boost.org/doc/libs/release/doc/html/quickbook.html Boost.Quickbook]]

[def __boost_phoenix_adapt__ [@https://www.boost.org/doc/libs/release/libs/phoenix/doc/html/phoenix/modules/function/adapting_functions.html `BOOST_PHOENIX_ADAPT_*`]]
[def __boost_phoenix_bind__ [@https://www.boost.org/doc/libs/release/libs/phoenix/doc/html/phoenix/modules/bind.html `boost::phoenix::bind`]]


[template ticket[key]'''<ulink url="https://svn.boost.org/trac/boost/ticket/'''[key]'''">#'''[key]'''</ulink>''']
[template github_issue[key]'''<ulink url="https://github.com/boostorg/log/issues/'''[key]'''">GH#'''[key]'''</ulink>''']
[template pull_request[key]'''<ulink url="https://github.com/boostorg/log/pull/'''[key]'''">PR#'''[key]'''</ulink>''']

[/ Auto-generated macros that refer to Reference sections /]
[include tmp/top_level_reference.qbk]
[include tmp/core_reference.qbk]
[include tmp/attributes_reference.qbk]
[include tmp/expressions_reference.qbk]
[include tmp/sources_reference.qbk]
[include tmp/sinks_reference.qbk]
[include tmp/utility_reference.qbk]
[include tmp/support_reference.qbk]

[/ Code samples /]
[import ../example/doc/tutorial_trivial.cpp]
[import ../example/doc/tutorial_trivial_flt.cpp]
[import ../example/doc/tutorial_file.cpp]
[import ../example/doc/tutorial_file_manual.cpp]
[import ../example/doc/tutorial_fmt_stream.cpp]
[import ../example/doc/tutorial_fmt_stream_manual.cpp]
[import ../example/doc/tutorial_fmt_format.cpp]
[import ../example/doc/tutorial_fmt_string.cpp]
[import ../example/doc/tutorial_fmt_custom.cpp]
[import ../example/doc/tutorial_logging.cpp]
[import ../example/doc/tutorial_attributes.cpp]
[import ../example/doc/tutorial_filtering.cpp]
[import ../example/doc/core_record.cpp]
[import ../example/doc/core_core_manual.cpp]
[import ../example/doc/attr_value_visitation.cpp]
[import ../example/doc/attr_value_extraction.cpp]
[import ../example/doc/expressions_attr_fmt_tag.cpp]
[import ../example/doc/expressions_keyword_fmt_tag.cpp]
[import ../example/doc/expressions_has_attr_stat_accum.cpp]
[import ../example/doc/expressions_channel_severity_filter.cpp]
[import ../example/doc/expressions_filter_adapt_function.cpp]
[import ../example/doc/expressions_wrap_filter.cpp]
[import ../example/doc/expressions_formatter_adapt_function.cpp]
[import ../example/doc/expressions_wrap_formatter.cpp]
[import ../example/doc/sources_net_connection.cpp]
[import ../example/doc/sources_net_connection_chan.cpp]
[import ../example/doc/sources_net_connection_dynamic_chan.cpp]
[import ../example/doc/sources_severity.cpp]
[import ../example/doc/sources_severity_channel.cpp]
[import ../example/doc/exception_handling.cpp]
[import ../example/doc/sinks_unlocked.cpp]
[import ../example/doc/sinks_sync.cpp]
[import ../example/doc/sinks_async.cpp]
[import ../example/doc/sinks_async_bounded.cpp]
[import ../example/doc/sinks_async_ordering.cpp]
[import ../example/doc/sinks_ostream.cpp]
[import ../example/doc/sinks_file.cpp]
[import ../example/doc/sinks_xml_file.cpp]
[import ../example/doc/sinks_multifile.cpp]
[import ../example/doc/sinks_syslog.cpp]
[import ../example/doc/sinks_debugger.cpp]
[import ../example/doc/sinks_simple_event_log.cpp]
[import ../example/doc/sinks_ipc_logger.cpp]
[import ../example/doc/sinks_ipc_receiver.cpp]
[import ../example/doc/util_static_type_disp.cpp]
[import ../example/doc/util_dynamic_type_disp.cpp]
[import ../example/doc/util_manip_to_log.cpp]
[import ../example/doc/util_ipc_reliable_mq_writer.cpp]
[import ../example/doc/util_setup_settings.cpp]
[import ../example/doc/extension_stat_collector.cpp]
[import ../example/doc/extension_app_launcher.cpp]
[import ../example/doc/extension_record_tagger.cpp]
[import ../example/doc/extension_system_uptime_attr.cpp]
[import ../example/doc/extension_formatter_parser.cpp]
[import ../example/doc/extension_filter_parser.cpp]
[import ../example/doc/extension_filter_parser_custom_rel.cpp]
[import ../example/doc/extension_stat_collector_settings.cpp]
[import ../example/wide_char/main.cpp]
[import ../example/event_log/main.cpp]

[include:log intro.qbk]
[include:log install.qbk]
[include:log design.qbk]
[include:log tutorial.qbk]

[section:detailed Detailed features description]

[include:log core.qbk]
[include:log sources.qbk]
[include:log sink_frontends.qbk]
[include:log sink_backends.qbk]
[include:log expressions.qbk]
[include:log attributes.qbk]
[include:log utilities.qbk]

[endsect]

[include:log extension.qbk]
[include:log rationale.qbk]

[section:reference Reference]

[xinclude tmp/top_level_reference.xml]
[xinclude tmp/core_reference.xml]
[xinclude tmp/attributes_reference.xml]
[xinclude tmp/expressions_reference.xml]
[xinclude tmp/sources_reference.xml]
[xinclude tmp/sinks_reference.xml]
[xinclude tmp/utility_reference.xml]
[xinclude tmp/support_reference.xml]

[endsect]

[include:log changelog.qbk]
[include:log todo.qbk]

[section:acknowledgments Acknowledgments]

* Vladimir Prus managed the library review in Boost and actually reviewed it in the process.
* Adam Wulkiewicz created the logo used on the [@https://github.com/boostorg/log GitHub project page]. The logo was taken from his [@https://github.com/awulkiew/boost-logos collection] of Boost logos.
* Luca Rigini wrote the initial implementation of the NT event log sink and made a lot of suggestions on how to improve the library with regard to writing user-defined sinks.
* Jean-Daniel Michaud, Michael Lacher and all others who took part in the discussion of the requirements to the library on [@http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Logging Wiki].
* John Torjo, Gennadiy Rozental and others for their discussion on John's logging library on the Boost developers list. It helped a lot to learn the requirements and possible solutions for the library.
* All authors of the great Boost libraries that were involved in this library (notably, __boost_smart_ptr__, __boost_thread__, __boost_date_time__, __boost_filesystem__, __boost_intrusive__, __boost_spirit2__ and others) and __boost_quickbook__ authors for a simple yet powerful documenting tool.
* All the reviewers and the users who made suggestions and offered their feedback on the library. Most notably, Steven Watanabe for his in-depth studying the docs and the code, with a lot of fruitful comments on both.

[endsect]
