1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright 2024 FastLabs Developers
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//! # A versatile and extensible logging implementation
//!
//! ## Usage
//!
//! Add the dependencies to your `Cargo.toml` with:
//!
//! ```shell
//! cargo add log
//! cargo add logforth
//! ```
//!
//! Here, [`log`] is the logging facade and `logforth` is the logging implementation.
//!
//! Then, you can use the logger with:
//!
//! ```rust
//! use log::LevelFilter;
//! use logforth::append;
//! use logforth::layout::TextLayout;
//! use logforth::Dispatch;
//! use logforth::Logger;
//!
//! Logger::new()
//! .dispatch(
//! Dispatch::new()
//! .filter(LevelFilter::Trace)
//! .layout(TextLayout::default())
//! .append(append::Stdout),
//! )
//! .apply()
//! .unwrap();
//!
//! log::error!("Hello error!");
//! log::warn!("Hello warn!");
//! log::info!("Hello info!");
//! log::debug!("Hello debug!");
//! log::trace!("Hello trace!");
//! ```
//!
//! Read more demos under the [examples](https://github.com/fast/logforth/tree/main/examples) directory.
pub use Append;
pub use Filter;
pub use Layout;
pub use Dispatch;
pub use Logger;