| <!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">☰</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<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Builder">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Builder">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Builder">Into<U></a></li><li><a href="#impl-TryFrom%3CU%3E-for-Builder">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Builder">TryInto<U></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">−</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">"{} - {}"</span>, record.level(), record.args())) |
| .filter(<span class="prelude-val">None</span>, LevelFilter::Info) |
| .init(); |
| |
| <span class="macro">error!</span>(<span class="string">"error message"</span>); |
| <span class="macro">info!</span>(<span class="string">"info message"</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>() -> <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><'a, E>(env: E) -> Self<span class="where fmt-newline">where<br> E: Into<<a class="struct" href="struct.Env.html" title="struct env_logger::Env">Env</a><'a>>,</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">"MY_LOG"</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">"MY_LOG"</span>).write_style(<span class="string">"MY_LOG_STYLE"</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><'a, E>(&mut self, env: E) -> &mut Self<span class="where fmt-newline">where<br> E: Into<<a class="struct" href="struct.Env.html" title="struct env_logger::Env">Env</a><'a>>,</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">"MY_LOG"</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">"MY_LOG"</span>).write_style(<span class="string">"MY_LOG_STYLE"</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>() -> 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>(&mut self) -> &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><F: 'static>(&mut self, format: F) -> &mut Self<span class="where fmt-newline">where<br> F: Fn(&mut <a class="struct" href="fmt/struct.Formatter.html" title="struct env_logger::fmt::Formatter">Formatter</a>, &<a class="struct" href="../log/struct.Record.html" title="struct log::Record">Record</a><'_>) -> Result<()> + 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">"{}"</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>(&mut self) -> &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>(&mut self, write: bool) -> &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>(&mut self, write: bool) -> &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>(&mut self, write: bool) -> &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>(&mut self, indent: Option<usize>) -> &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> &mut self,<br> timestamp: Option<<a class="enum" href="fmt/enum.TimestampPrecision.html" title="enum env_logger::fmt::TimestampPrecision">TimestampPrecision</a>><br>) -> &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>(&mut self) -> &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>(&mut self) -> &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>(&mut self) -> &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>(&mut self) -> &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>(&mut self, suffix: &'static str) -> &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>(&mut self, module: &str, level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>) -> &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">"path::to::module"</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>(&mut self, level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>) -> &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>(&mut self, module: Option<&str>, level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>) -> &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">"path::to::module"</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>(&mut self, filters: &str) -> &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>(&mut self, target: <a class="enum" href="fmt/enum.Target.html" title="enum env_logger::fmt::Target">Target</a>) -> &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>(&mut self, write_style: <a class="enum" href="fmt/enum.WriteStyle.html" title="enum env_logger::fmt::WriteStyle">WriteStyle</a>) -> &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>(&mut self, write_style: &str) -> &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>(&mut self, is_test: bool) -> &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>(&mut self) -> Result<(), <a class="struct" href="../log/struct.SetLoggerError.html" title="struct log::SetLoggerError">SetLoggerError</a>></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>(&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>(&mut self) -> <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>(&self, f: &mut Formatter<'_>) -> 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>() -> <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<T> Any for T<span class="where fmt-newline">where<br> 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>(&self) -> 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<T> Borrow<T> for T<span class="where fmt-newline">where<br> 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>(&self) -> &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<T> BorrowMut<T> for T<span class="where fmt-newline">where<br> 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>(&mut self) -> &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<T> From<T> 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) -> 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<T, U> Into<U> for T<span class="where fmt-newline">where<br> U: From<T>,</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) -> 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]<T> 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<T, U> TryFrom<U> for T<span class="where fmt-newline">where<br> U: Into<T>,</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) -> Result<T, <T as TryFrom<U>>::Error></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<T, U> TryInto<U> for T<span class="where fmt-newline">where<br> U: TryFrom<T>,</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> = <U as TryFrom<T>>::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) -> Result<U, <U as TryFrom<T>>::Error></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> |