• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

veeso / termscp / 4926442260

pending completion
4926442260

push

github

veeso
rustfmt.toml

5042 of 5376 relevant lines covered (93.79%)

15.03 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.25
/src/system/logging.rs
1
//! ## Logging
×
2
//!
3
//! `logging` is the module which initializes the logging system for termscp
4

5
pub use simplelog::LevelFilter as LogLevel;
6
use simplelog::{ConfigBuilder, WriteLogger};
7

8
use super::environment::{get_log_paths, init_cache_dir};
9
use crate::utils::file::open_file;
10

11
/// Initialize logger
12
pub fn init(level: LogLevel) -> Result<(), String> {
1✔
13
    // Init cache dir
14
    let cache_dir = match init_cache_dir() {
1✔
15
        Ok(Some(p)) => p,
1✔
16
        Ok(None) => {
17
            return Err(String::from(
×
18
                "This system doesn't seem to support CACHE_DIR",
19
            ))
20
        }
21
        Err(err) => return Err(err),
×
22
    };
1✔
23
    let log_file_path = get_log_paths(cache_dir.as_path());
1✔
24
    // Open log file
25
    let file = open_file(log_file_path.as_path(), true, true, false)
2✔
26
        .map_err(|e| format!("Failed to open file {}: {}", log_file_path.display(), e))?;
1✔
27
    // Prepare log config
28
    let config = ConfigBuilder::new().set_time_format_rfc3339().build();
1✔
29
    // Make logger
30
    WriteLogger::init(level, config, file).map_err(|e| format!("Failed to initialize logger: {e}"))
1✔
31
}
1✔
32

33
#[cfg(test)]
34
mod test {
35

36
    use super::*;
37

38
    #[test]
39
    fn test_system_logging_setup() {
2✔
40
        assert!(init(LogLevel::Trace).is_ok());
1✔
41
    }
2✔
42
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc