blob: dbf54376caefb83ab662423e3bb75f878fa27f24 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`Builder` acts as builder for initializing a `Logger`."><meta name="keywords" content="rust, rustlang, rust-lang, Builder"><title>Builder in env_logger - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../normalize.css"><link rel="stylesheet" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../ayu.css" disabled><link rel="stylesheet" href="../dark.css" disabled><link rel="stylesheet" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" href="https://www.rust-lang.org/static/images/favicon.ico"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../env_logger/index.html"><div class="logo-container"><img src="https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../env_logger/index.html"><div class="logo-container">
<img src="https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png" alt="logo"></div></a><h2 class="location"><a href="#">Builder</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.build">build</a></li><li><a href="#method.default_format">default_format</a></li><li><a href="#method.filter">filter</a></li><li><a href="#method.filter_level">filter_level</a></li><li><a href="#method.filter_module">filter_module</a></li><li><a href="#method.format">format</a></li><li><a href="#method.format_indent">format_indent</a></li><li><a href="#method.format_level">format_level</a></li><li><a href="#method.format_module_path">format_module_path</a></li><li><a href="#method.format_suffix">format_suffix</a></li><li><a href="#method.format_target">format_target</a></li><li><a href="#method.format_timestamp">format_timestamp</a></li><li><a href="#method.format_timestamp_micros">format_timestamp_micros</a></li><li><a href="#method.format_timestamp_millis">format_timestamp_millis</a></li><li><a href="#method.format_timestamp_nanos">format_timestamp_nanos</a></li><li><a href="#method.format_timestamp_secs">format_timestamp_secs</a></li><li><a href="#method.from_default_env">from_default_env</a></li><li><a href="#method.from_env">from_env</a></li><li><a href="#method.init">init</a></li><li><a href="#method.is_test">is_test</a></li><li><a href="#method.new">new</a></li><li><a href="#method.parse_default_env">parse_default_env</a></li><li><a href="#method.parse_env">parse_env</a></li><li><a href="#method.parse_filters">parse_filters</a></li><li><a href="#method.parse_write_style">parse_write_style</a></li><li><a href="#method.target">target</a></li><li><a href="#method.try_init">try_init</a></li><li><a href="#method.write_style">write_style</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-Builder">Debug</a></li><li><a href="#impl-Default-for-Builder">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Builder">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-Builder">Send</a></li><li><a href="#impl-Sync-for-Builder">Sync</a></li><li><a href="#impl-Unpin-for-Builder">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Builder">!UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Builder">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Builder">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Builder">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-Builder">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-Builder">Into&lt;U&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Builder">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Builder">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In env_logger</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="index.html">env_logger</a>::<wbr><a class="struct" href="#">Builder</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/env_logger/lib.rs.html#377-382">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Builder { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><code>Builder</code> acts as builder for initializing a <code>Logger</code>.</p>
<p>It can be used to customize the log format, change the environment variable used
to provide the logging directives and also set the default log level filter.</p>
<h2 id="examples"><a href="#examples">Examples</a></h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::Builder;
<span class="kw">use </span>log::LevelFilter;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::from_default_env();
builder
.format(|buf, record| <span class="macro">writeln!</span>(buf, <span class="string">&quot;{} - {}&quot;</span>, record.level(), record.args()))
.filter(<span class="prelude-val">None</span>, LevelFilter::Info)
.init();
<span class="macro">error!</span>(<span class="string">&quot;error message&quot;</span>);
<span class="macro">info!</span>(<span class="string">&quot;info message&quot;</span>);</code></pre></div>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Builder" class="impl has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#384-833">source</a><a href="#impl-Builder" class="anchor"></a><h3 class="code-header">impl <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#411-413">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fnname">new</a>() -&gt; <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h4></section></summary><div class="docblock"><p>Initializes the log builder with defaults.</p>
<p><strong>NOTE:</strong> This method won’t read from any environment variables.
Use the <a href="#method.filter"><code>filter</code></a> and <a href="#method.write_style"><code>write_style</code></a> methods to configure the builder
or use <a href="#method.from_env"><code>from_env</code></a> or <a href="#method.from_default_env"><code>from_default_env</code></a> instead.</p>
<h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
<p>Create a new builder and configure filters and style:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>log::LevelFilter;
<span class="kw">use </span>env_logger::{Builder, WriteStyle};
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder
.filter(<span class="prelude-val">None</span>, LevelFilter::Info)
.write_style(WriteStyle::Always)
.init();</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_env" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#443-450">source</a><h4 class="code-header">pub fn <a href="#method.from_env" class="fnname">from_env</a>&lt;'a, E&gt;(env: E) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;E: Into&lt;<a class="struct" href="struct.Env.html" title="struct env_logger::Env">Env</a>&lt;'a&gt;&gt;,</span></h4></section></summary><div class="docblock"><p>Initializes the log builder from the environment.</p>
<p>The variables used to read configuration from can be tweaked before
passing in.</p>
<h5 id="examples-2"><a href="#examples-2">Examples</a></h5>
<p>Initialise a logger reading the log filter from an environment variable
called <code>MY_LOG</code>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::Builder;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::from_env(<span class="string">&quot;MY_LOG&quot;</span>);
builder.init();</code></pre></div>
<p>Initialise a logger using the <code>MY_LOG</code> variable for filtering and
<code>MY_LOG_STYLE</code> for whether or not to write styles:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::{Builder, Env};
<span class="kw">let </span>env = Env::new().filter(<span class="string">&quot;MY_LOG&quot;</span>).write_style(<span class="string">&quot;MY_LOG_STYLE&quot;</span>);
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::from_env(env);
builder.init();</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_env" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#488-503">source</a><h4 class="code-header">pub fn <a href="#method.parse_env" class="fnname">parse_env</a>&lt;'a, E&gt;(&amp;mut self, env: E) -&gt; &amp;mut Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;E: Into&lt;<a class="struct" href="struct.Env.html" title="struct env_logger::Env">Env</a>&lt;'a&gt;&gt;,</span></h4></section></summary><div class="docblock"><p>Applies the configuration from the environment.</p>
<p>This function allows a builder to be configured with default parameters,
to be then overridden by the environment.</p>
<h5 id="examples-3"><a href="#examples-3">Examples</a></h5>
<p>Initialise a logger with filter level <code>Off</code>, then override the log
filter from an environment variable called <code>MY_LOG</code>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>log::LevelFilter;
<span class="kw">use </span>env_logger::Builder;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.filter_level(LevelFilter::Off);
builder.parse_env(<span class="string">&quot;MY_LOG&quot;</span>);
builder.init();</code></pre></div>
<p>Initialise a logger with filter level <code>Off</code>, then use the <code>MY_LOG</code>
variable to override filtering and <code>MY_LOG_STYLE</code> to override whether
or not to write styles:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>log::LevelFilter;
<span class="kw">use </span>env_logger::{Builder, Env};
<span class="kw">let </span>env = Env::new().filter(<span class="string">&quot;MY_LOG&quot;</span>).write_style(<span class="string">&quot;MY_LOG_STYLE&quot;</span>);
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.filter_level(LevelFilter::Off);
builder.parse_env(env);
builder.init();</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_default_env" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#523-525">source</a><h4 class="code-header">pub fn <a href="#method.from_default_env" class="fnname">from_default_env</a>() -&gt; Self</h4></section></summary><div class="docblock"><p>Initializes the log builder from the environment using default variable names.</p>
<p>This method is a convenient way to call <code>from_env(Env::default())</code> without
having to use the <code>Env</code> type explicitly. The builder will use the
<a href="struct.Env.html#default-environment-variables">default environment variables</a>.</p>
<h5 id="examples-4"><a href="#examples-4">Examples</a></h5>
<p>Initialise a logger using the default environment variables:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::Builder;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::from_default_env();
builder.init();</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_default_env" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#549-551">source</a><h4 class="code-header">pub fn <a href="#method.parse_default_env" class="fnname">parse_default_env</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Applies the configuration from the environment using default variable names.</p>
<p>This method is a convenient way to call <code>parse_env(Env::default())</code> without
having to use the <code>Env</code> type explicitly. The builder will use the
<a href="struct.Env.html#default-environment-variables">default environment variables</a>.</p>
<h5 id="examples-5"><a href="#examples-5">Examples</a></h5>
<p>Initialise a logger with filter level <code>Off</code>, then configure it using the
default environment variables:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>log::LevelFilter;
<span class="kw">use </span>env_logger::Builder;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.filter_level(LevelFilter::Off);
builder.parse_default_env();
builder.init();</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#579-585">source</a><h4 class="code-header">pub fn <a href="#method.format" class="fnname">format</a>&lt;F:&nbsp;'static&gt;(&amp;mut self, format: F) -&gt; &amp;mut Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: Fn(&amp;mut <a class="struct" href="fmt/struct.Formatter.html" title="struct env_logger::fmt::Formatter">Formatter</a>, &amp;<a class="struct" href="../log/struct.Record.html" title="struct log::Record">Record</a>&lt;'_&gt;) -&gt; Result&lt;()&gt; + Sync + Send,</span></h4></section></summary><div class="docblock"><p>Sets the format function for formatting the log output.</p>
<p>This function is called on each record logged and should format the
log record and output it to the given <a href="fmt/struct.Formatter.html"><code>Formatter</code></a>.</p>
<p>The format function is expected to output the string directly to the
<code>Formatter</code> so that implementations can use the <a href="https://doc.rust-lang.org/std/fmt/index.html"><code>std::fmt</code></a> macros
to format and output without intermediate heap allocations. The default
<code>env_logger</code> formatter takes advantage of this.</p>
<h5 id="examples-6"><a href="#examples-6">Examples</a></h5>
<p>Use a custom format to write only the log message:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::io::Write;
<span class="kw">use </span>env_logger::Builder;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.format(|buf, record| <span class="macro">writeln!</span>(buf, <span class="string">&quot;{}&quot;</span>, record.args()));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default_format" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#590-593">source</a><h4 class="code-header">pub fn <a href="#method.default_format" class="fnname">default_format</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Use the default format.</p>
<p>This method will clear any custom format set on the builder.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_level" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#596-599">source</a><h4 class="code-header">pub fn <a href="#method.format_level" class="fnname">format_level</a>(&amp;mut self, write: bool) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Whether or not to write the level in the default format.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_module_path" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#602-605">source</a><h4 class="code-header">pub fn <a href="#method.format_module_path" class="fnname">format_module_path</a>(&amp;mut self, write: bool) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Whether or not to write the module path in the default format.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_target" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#608-611">source</a><h4 class="code-header">pub fn <a href="#method.format_target" class="fnname">format_target</a>(&amp;mut self, write: bool) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Whether or not to write the target in the default format.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_indent" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#615-618">source</a><h4 class="code-header">pub fn <a href="#method.format_indent" class="fnname">format_indent</a>(&amp;mut self, indent: Option&lt;usize&gt;) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Configures the amount of spaces to use to indent multiline log records.
A value of <code>None</code> disables any kind of indentation.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_timestamp" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#621-624">source</a><h4 class="code-header">pub fn <a href="#method.format_timestamp" class="fnname">format_timestamp</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;timestamp: Option&lt;<a class="enum" href="fmt/enum.TimestampPrecision.html" title="enum env_logger::fmt::TimestampPrecision">TimestampPrecision</a>&gt;<br>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Configures if timestamp should be included and in what precision.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_timestamp_secs" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#627-629">source</a><h4 class="code-header">pub fn <a href="#method.format_timestamp_secs" class="fnname">format_timestamp_secs</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Configures the timestamp to use second precision.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_timestamp_millis" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#632-634">source</a><h4 class="code-header">pub fn <a href="#method.format_timestamp_millis" class="fnname">format_timestamp_millis</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Configures the timestamp to use millisecond precision.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_timestamp_micros" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#637-639">source</a><h4 class="code-header">pub fn <a href="#method.format_timestamp_micros" class="fnname">format_timestamp_micros</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Configures the timestamp to use microsecond precision.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_timestamp_nanos" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#642-644">source</a><h4 class="code-header">pub fn <a href="#method.format_timestamp_nanos" class="fnname">format_timestamp_nanos</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Configures the timestamp to use nanosecond precision.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_suffix" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#647-650">source</a><h4 class="code-header">pub fn <a href="#method.format_suffix" class="fnname">format_suffix</a>(&amp;mut self, suffix: &amp;'static str) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Configures the end of line suffix.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter_module" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#666-669">source</a><h4 class="code-header">pub fn <a href="#method.filter_module" class="fnname">filter_module</a>(&amp;mut self, module: &amp;str, level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Adds a directive to the filter for a specific module.</p>
<h5 id="examples-7"><a href="#examples-7">Examples</a></h5>
<p>Only include messages for info and above for logs in <code>path::to::module</code>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::Builder;
<span class="kw">use </span>log::LevelFilter;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.filter_module(<span class="string">&quot;path::to::module&quot;</span>, LevelFilter::Info);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter_level" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#685-688">source</a><h4 class="code-header">pub fn <a href="#method.filter_level" class="fnname">filter_level</a>(&amp;mut self, level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Adds a directive to the filter for all modules.</p>
<h5 id="examples-8"><a href="#examples-8">Examples</a></h5>
<p>Only include messages for info and above for logs globally:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::Builder;
<span class="kw">use </span>log::LevelFilter;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.filter_level(LevelFilter::Info);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#707-710">source</a><h4 class="code-header">pub fn <a href="#method.filter" class="fnname">filter</a>(&amp;mut self, module: Option&lt;&amp;str&gt;, level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Adds filters to the logger.</p>
<p>The given module (if any) will log at most the specified level provided.
If no module is provided then the filter will apply to all log messages.</p>
<h5 id="examples-9"><a href="#examples-9">Examples</a></h5>
<p>Only include messages for info and above for logs in <code>path::to::module</code>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::Builder;
<span class="kw">use </span>log::LevelFilter;
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.filter(<span class="prelude-val">Some</span>(<span class="string">&quot;path::to::module&quot;</span>), LevelFilter::Info);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_filters" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#716-719">source</a><h4 class="code-header">pub fn <a href="#method.parse_filters" class="fnname">parse_filters</a>(&amp;mut self, filters: &amp;str) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Parses the directives string in the same form as the <code>RUST_LOG</code>
environment variable.</p>
<p>See the module documentation for more details.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.target" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#739-742">source</a><h4 class="code-header">pub fn <a href="#method.target" class="fnname">target</a>(&amp;mut self, target: <a class="enum" href="fmt/enum.Target.html" title="enum env_logger::fmt::Target">Target</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets the target for the log output.</p>
<p>Env logger can log to either stdout, stderr or a custom pipe. The default is stderr.</p>
<p>The custom pipe can be used to send the log messages to a custom sink (for example a file).
Do note that direct writes to a file can become a bottleneck due to IO operation times.</p>
<h5 id="examples-10"><a href="#examples-10">Examples</a></h5>
<p>Write log message to <code>stdout</code>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::{Builder, Target};
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.target(Target::Stdout);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_style" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#760-763">source</a><h4 class="code-header">pub fn <a href="#method.write_style" class="fnname">write_style</a>(&amp;mut self, write_style: <a class="enum" href="fmt/enum.WriteStyle.html" title="enum env_logger::fmt::WriteStyle">WriteStyle</a>) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets whether or not styles will be written.</p>
<p>This can be useful in environments that don’t support control characters
for setting colors.</p>
<h5 id="examples-11"><a href="#examples-11">Examples</a></h5>
<p>Never attempt to write styles:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>env_logger::{Builder, WriteStyle};
<span class="kw">let </span><span class="kw-2">mut </span>builder = Builder::new();
builder.write_style(WriteStyle::Never);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parse_write_style" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#769-772">source</a><h4 class="code-header">pub fn <a href="#method.parse_write_style" class="fnname">parse_write_style</a>(&amp;mut self, write_style: &amp;str) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Parses whether or not to write styles in the same form as the <code>RUST_LOG_STYLE</code>
environment variable.</p>
<p>See the module documentation for more details.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_test" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#778-781">source</a><h4 class="code-header">pub fn <a href="#method.is_test" class="fnname">is_test</a>(&amp;mut self, is_test: bool) -&gt; &amp;mut Self</h4></section></summary><div class="docblock"><p>Sets whether or not the logger will be used in unit tests.</p>
<p>If <code>is_test</code> is <code>true</code> then the logger will allow the testing framework to
capture log records rather than printing them to the terminal directly.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_init" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#792-803">source</a><h4 class="code-header">pub fn <a href="#method.try_init" class="fnname">try_init</a>(&amp;mut self) -&gt; Result&lt;(), <a class="struct" href="../log/struct.SetLoggerError.html" title="struct log::SetLoggerError">SetLoggerError</a>&gt;</h4></section></summary><div class="docblock"><p>Initializes the global logger with the built env logger.</p>
<p>This should be called early in the execution of a Rust program. Any log
events that occur before initialization will be ignored.</p>
<h5 id="errors"><a href="#errors">Errors</a></h5>
<p>This function will fail if it is called more than once, or if another
library has already initialized a global logger.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.init" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#814-817">source</a><h4 class="code-header">pub fn <a href="#method.init" class="fnname">init</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Initializes the global logger with the built env logger.</p>
<p>This should be called early in the execution of a Rust program. Any log
events that occur before initialization will be ignored.</p>
<h5 id="panics"><a href="#panics">Panics</a></h5>
<p>This function will panic if it is called more than once, or if another
library has already initialized a global logger.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#823-832">source</a><h4 class="code-header">pub fn <a href="#method.build" class="fnname">build</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Logger.html" title="struct env_logger::Logger">Logger</a></h4></section></summary><div class="docblock"><p>Build an env logger.</p>
<p>The returned logger implements the <code>Log</code> trait and can be installed manually
or nested within another logger.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Builder" class="impl has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#1117-1128">source</a><a href="#impl-Debug-for-Builder" class="anchor"></a><h3 class="code-header">impl Debug for <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#1118-1127">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&amp;self, f: &amp;mut Formatter&lt;'_&gt;) -&gt; Result</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Builder" class="impl has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#376">source</a><a href="#impl-Default-for-Builder" class="anchor"></a><h3 class="code-header">impl Default for <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/env_logger/lib.rs.html#376">source</a><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a class="fnname">default</a>() -&gt; <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a>Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Builder" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Builder" class="anchor"></a><h3 class="code-header">impl !RefUnwindSafe for <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section><section id="impl-Send-for-Builder" class="impl has-srclink"><a href="#impl-Send-for-Builder" class="anchor"></a><h3 class="code-header">impl Send for <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section><section id="impl-Sync-for-Builder" class="impl has-srclink"><a href="#impl-Sync-for-Builder" class="anchor"></a><h3 class="code-header">impl Sync for <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section><section id="impl-Unpin-for-Builder" class="impl has-srclink"><a href="#impl-Unpin-for-Builder" class="anchor"></a><h3 class="code-header">impl Unpin for <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section><section id="impl-UnwindSafe-for-Builder" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Builder" class="anchor"></a><h3 class="code-header">impl !UnwindSafe for <a class="struct" href="struct.Builder.html" title="struct env_logger::Builder">Builder</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Builder" class="impl has-srclink"><a href="#impl-Any-for-Builder" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Any for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a class="fnname">type_id</a>(&amp;self) -&gt; TypeId</h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Builder" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-Builder" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Borrow&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow</a>(&amp;self) -&gt; &amp;T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Builder" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-Builder" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; BorrowMut&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow_mut</a>(&amp;mut self) -&gt; &amp;mut T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Builder" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-Builder" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; From&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Builder" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-Builder" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; Into&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: From&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code>[From]&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Builder" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-Builder" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryFrom&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Into&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(value: U) -&gt; Result&lt;T, &lt;T as TryFrom&lt;U&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Builder" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-Builder" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryInto&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: TryFrom&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = &lt;U as TryFrom&lt;T&gt;&gt;::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -&gt; Result&lt;U, &lt;U as TryFrom&lt;T&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="env_logger" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>