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
use Builder;
/// This constant defines the program name that will appear in syslog entries
/// when syslog logging is enabled. It helps identify log entries from this
/// application in system logs.
pub const SYSLOG_IDENTITY: &str = "rex_runner";
/// Configuration options for logging output destinations.
///
/// This struct defines which logging outputs should be enabled. It uses the builder
/// pattern via `derive_builder` for convenient configuration. Both console and syslog
/// logging are disabled by default.
///
/// # Platform Support
///
/// - **Console logging**: Available on all platforms
/// - **Syslog logging**: Unix-based systems only (Linux, macOS, etc.)
/// - **Memory logging**: Available on all platforms
/// - **Max Log Message Length**: Maximun length for individual log messages stored in-memory. Defaults to 2Kb if not set.
///
/// # Examples
///
/// ```rust
/// use rex_logger::tracing_logger::config::LoggingOptionBuilder;
///
/// let config = LoggingOptionBuilder::default()
/// .console(true)
/// .syslog(false)
/// .build()
/// .unwrap();
/// ```