logforth_append_file/
lib.rs

1// Copyright 2024 FastLabs Developers
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Appender for writing log records to single file or rolling files.
16//!
17//! # Example
18//!
19//!```
20//! use logforth_append_file::File;
21//! use logforth_append_file::FileBuilder;
22//! use logforth_core::record::LevelFilter;
23//! use logforth_layout_json::JsonLayout;
24//!
25//! logforth_bridge_log::setup();
26//!
27//! let rolling = FileBuilder::new("logs", "app_log")
28//!     .layout(JsonLayout::default())
29//!     .rollover_daily()
30//!     .build()
31//!     .unwrap();
32//!
33//! logforth_core::builder()
34//!     .dispatch(|d| d.filter(LevelFilter::Trace).append(rolling))
35//!     .apply();
36//!
37//! log::info!("This log will be written to a rolling file.");
38//! ```
39
40#![cfg_attr(docsrs, feature(doc_cfg))]
41
42pub use self::append::File;
43pub use self::append::FileBuilder;
44
45mod append;
46mod clock;
47mod rolling;
48mod rotation;