<span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" href="../../expressions.html#header.boost.log.expressions.attr_hpp" title="Header <boost/log/expressions/attr.hpp>">boost/log/expressions/attr.hpp</a></code><span class="special">></span>
</pre>
<p>
- The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/attr_idm45185969186544.html" title="Function template attr">attr</a></code>
+ The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/attr_idm45711349917408.html" title="Function template attr">attr</a></code>
placeholder represents an attribute value in template expressions. Given
the record view or a set of attribute values, the placeholder will attempt
to extract the specified attribute value from the argument upon invocation.
<p>
Attribute keywords can be used as replacements for the <a class="link" href="expressions.html#log.detailed.expressions.attr" title="Generic attribute placeholder"><code class="computeroutput"><span class="identifier">attr</span></code></a> placeholders in filters and
formatters while providing a more concise and less error prone syntax.
- An attribute keyword can be declared with the <code class="computeroutput"><a class="link" href="../../BOOST_LO_idm45185965975008.html" title="Macro BOOST_LOG_ATTRIBUTE_KEYWORD">BOOST_LOG_ATTRIBUTE_KEYWORD</a></code>
+ An attribute keyword can be declared with the <code class="computeroutput"><a class="link" href="../../BOOST_LO_idm45711347575568.html" title="Macro BOOST_LOG_ATTRIBUTE_KEYWORD">BOOST_LOG_ATTRIBUTE_KEYWORD</a></code>
macro:
</p>
<pre class="programlisting"><span class="identifier">BOOST_LOG_ATTRIBUTE_KEYWORD</span><span class="special">(</span><span class="identifier">keyword</span><span class="special">,</span> <span class="string">"Keyword"</span><span class="special">,</span> <span class="identifier">type</span><span class="special">)</span>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" href="../../expressions.html#header.boost.log.expressions.predicates.has_attr_hpp" title="Header <boost/log/expressions/predicates/has_attr.hpp>">boost/log/expressions/predicates/has_attr.hpp</a></code><span class="special">></span>
</pre>
<p>
- The filter <code class="computeroutput"><a class="link" href="../../boost/log/expressions/has_attr_idm45185965607712.html" title="Function template has_attr">has_attr</a></code> checks if an
+ The filter <code class="computeroutput"><a class="link" href="../../boost/log/expressions/has_attr_idm45711347208272.html" title="Function template has_attr">has_attr</a></code> checks if an
attribute value with the specified name and, optionally, type is attached
to a log record. If no type specified to the filter, the filter returns
<code class="computeroutput"><span class="keyword">true</span></code> if any value with the
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" href="../../expressions.html#header.boost.log.expressions.predicates.is_in_range_hpp" title="Header <boost/log/expressions/predicates/is_in_range.hpp>">boost/log/expressions/predicates/is_in_range.hpp</a></code><span class="special">></span>
</pre>
<p>
- The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/is_in_ra_idm45185965591600.html" title="Function template is_in_range">is_in_range</a></code> predicate
+ The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/is_in_ra_idm45711347192160.html" title="Function template is_in_range">is_in_range</a></code> predicate
checks that the attribute value fits in the half-open range (i.e. it
returns <code class="computeroutput"><span class="keyword">true</span></code> if the attribute
value <code class="computeroutput"><span class="identifier">x</span></code> satisfies the
<span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" href="../../expressions.html#header.boost.log.expressions.predicates.contains_hpp" title="Header <boost/log/expressions/predicates/contains.hpp>">boost/log/expressions/predicates/contains.hpp</a></code><span class="special">></span>
</pre>
<p>
- Predicates <code class="computeroutput"><a class="link" href="../../boost/log/expressions/begins_w_idm45185965917840.html" title="Function template begins_with">begins_with</a></code>, <code class="computeroutput"><a class="link" href="../../boost/log/expressions/ends_wit_idm45185965656288.html" title="Function template ends_with">ends_with</a></code>
- and <code class="computeroutput"><a class="link" href="../../boost/log/expressions/contains_idm45185965678736.html" title="Function template contains">contains</a></code> provide an
+ Predicates <code class="computeroutput"><a class="link" href="../../boost/log/expressions/begins_w_idm45711347518400.html" title="Function template begins_with">begins_with</a></code>, <code class="computeroutput"><a class="link" href="../../boost/log/expressions/ends_wit_idm45711347256848.html" title="Function template ends_with">ends_with</a></code>
+ and <code class="computeroutput"><a class="link" href="../../boost/log/expressions/contains_idm45711347279296.html" title="Function template contains">contains</a></code> provide an
easy way of matching string attribute values. As follows from their names,
the functions construct filters that return <code class="computeroutput"><span class="keyword">true</span></code>
if an attribute value begins with, ends with or contains the specified
<span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" href="../../other_libraries_support_layer.html#header.boost.log.support.spirit_classic_hpp" title="Header <boost/log/support/spirit_classic.hpp>">boost/log/support/spirit_classic.hpp</a></code><span class="special">></span>
</pre>
<p>
- The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/matches_idm45185965554560.html" title="Function template matches">matches</a></code> function creates
+ The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/matches_idm45711347155120.html" title="Function template matches">matches</a></code> function creates
a filter that apples a regular expression or a parser to a string attribute
value. The regular expression can be provided by <a href="http://www.boost.org/doc/libs/release/libs/regex/index.html" target="_top">Boost.Regex</a>
or <a href="http://www.boost.org/doc/libs/release/doc/html/xpressive.html" target="_top">Boost.Xpressive</a>.
for different channels. The mapping between channel names and severity
thresholds can be filled in <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span></code>
style by using the subscript operator or by calling <code class="computeroutput"><span class="identifier">add</span></code>
- method on the filter itself (the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45185965897328.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
+ method on the filter itself (the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45711347497888.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
instance). Let's see an example:
</p>
<p>
the complete code</a>.
</p>
<p>
- The filter for the console sink is composed from the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45185965897328.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
+ The filter for the console sink is composed from the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45711347497888.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
filter and a general severity level check. This general check will be
used when log records do not have a channel attribute or the channel
- name is not one of those specified in <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45185965897328.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
+ name is not one of those specified in <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45711347497888.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
initialization. It should be noted that it is possible to set the default
result of the threshold filter that will be used in this case; the default
result can be set by the <code class="computeroutput"><span class="identifier">set_default</span></code>
- method. The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45185965897328.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
+ method. The <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45711347497888.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
filter is set up to limit record severity levels for channels "general",
"network" and "gui" - all records in these channels
with levels below the specified thresholds will not pass the filter and
against thresholds. By default the predicate will use <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span></code>
equivalent for channel name ordering and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">greater_equal</span></code>
equivalent to compare severity levels. It is possible to customize the
- ordering predicates. Consult the reference of the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45185965897328.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
+ ordering predicates. Consult the reference of the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel__idm45711347497888.html" title="Class template channel_severity_filter_actor">channel_severity_filter_actor</a></code>
class and <code class="computeroutput"><a class="link" href="../../boost/log/expressions/channel_severity_filter.html" title="Function channel_severity_filter">channel_severity_filter</a></code>
generator to see the relevant template parameters.
</p>
<span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" href="../../other_libraries_support_layer.html#header.boost.log.support.date_time_hpp" title="Header <boost/log/support/date_time.hpp>">boost/log/support/date_time.hpp</a></code><span class="special">></span>
</pre>
<p>
- The library provides the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/format_d_idm45185966321792.html" title="Function template format_date_time">format_date_time</a></code> formatter
+ The library provides the <code class="computeroutput"><a class="link" href="../../boost/log/expressions/format_d_idm45711347922352.html" title="Function template format_date_time">format_date_time</a></code> formatter
dedicated to date and time-related attribute value types. The function
accepts the attribute value name and the format string compatible with
<a href="http://www.boost.org/doc/libs/release/doc/html/date_time.html" target="_top">Boost.DateTime</a>.
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" href="../../expressions.html#header.boost.log.expressions.formatters.named_scope_hpp" title="Header <boost/log/expressions/formatters/named_scope.hpp>">boost/log/expressions/formatters/named_scope.hpp</a></code><span class="special">></span>
</pre>
<p>
- The formatter <code class="computeroutput"><a class="link" href="../../boost/log/expressions/format_n_idm45185966125024.html" title="Function template format_named_scope">format_named_scope</a></code> is
+ The formatter <code class="computeroutput"><a class="link" href="../../boost/log/expressions/format_n_idm45711347725584.html" title="Function template format_named_scope">format_named_scope</a></code> is
intended to add support for flexible formatting of the <a class="link" href="attributes.html#log.detailed.attributes.named_scope" title="Named scopes">named
scope</a> attribute values. The basic usage is quite straightforward
and its result is similar to what <a class="link" href="expressions.html#log.detailed.expressions.attr" title="Generic attribute placeholder"><code class="computeroutput"><span class="identifier">attr</span></code></a> provides:
corresponding to a single character in the output. One can use <a href="http://www.boost.org/doc/libs/release/libs/locale/doc/html/index.html" target="_top">Boost.Locale</a>
to generate the locale and then install it in the sink frontend by
calling <code class="computeroutput"><span class="identifier">imbue</span></code> (see
- <code class="computeroutput"><a class="link" href="../../boost/log/sinks/basic_fo_idm45185964693472.html" title="Class template basic_formatting_sink_frontend">basic_formatting_sink_frontend</a></code>
+ <code class="computeroutput"><a class="link" href="../../boost/log/sinks/basic_fo_idm45711346293904.html" title="Class template basic_formatting_sink_frontend">basic_formatting_sink_frontend</a></code>
for reference). If the output character type is <code class="computeroutput"><span class="keyword">wchar_t</span></code>,
<code class="computeroutput"><span class="keyword">char16_t</span></code> or <code class="computeroutput"><span class="keyword">char32_t</span></code> the library assumes that
the output is encoded in UTF-16 or UTF-32, depending on the size