Skip to main content

color_log/
struct.rs

1use super::*;
2
3/// Main configuration structure for log file output.
4///
5/// Controls where logs are stored and their maximum size limits.
6/// Use FileLogger::new() to create an instance with custom settings.
7///
8/// Accessors are generated by `#[derive(Data)]`; the `String` setters accept
9/// any `impl AsRef<str>` via `#[set(type(AsRef<str>))]`.
10#[derive(Clone, Data)]
11pub struct FileLogger {
12    /// The directory path where log files will be stored.
13    #[set(type(AsRef<str>))]
14    pub(super) path: String,
15    /// The maximum allowed size (in bytes) for individual log files.
16    /// Set to 0 to disable logging.
17    pub(super) limit_file_size: usize,
18    /// Subdirectory name for trace logs.
19    #[set(type(AsRef<str>))]
20    pub(super) trace_dir: String,
21    /// Subdirectory name for debug logs.
22    #[set(type(AsRef<str>))]
23    pub(super) debug_dir: String,
24    /// Subdirectory name for info logs.
25    #[set(type(AsRef<str>))]
26    pub(super) info_dir: String,
27    /// Subdirectory name for warn logs.
28    #[set(type(AsRef<str>))]
29    pub(super) warn_dir: String,
30    /// Subdirectory name for error logs.
31    #[set(type(AsRef<str>))]
32    pub(super) error_dir: String,
33}