MCPcopy Create free account
hub / github.com/BrookenRecord/Packer / init_logging

Function init_logging

src/logging.rs:14–52  ·  view source on GitHub ↗
(root_dir: &Path)

Source from the content-addressed store, hash-verified

12};
13
14pub fn init_logging(root_dir: &Path) -> anyhow::Result<Handle> {
15 let level = log::LevelFilter::Debug;
16
17 let log_dir = root_dir.join("log");
18 if !log_dir.exists() {
19 fs::create_dir(&log_dir).context("Failed to create log directory")?;
20 }
21
22 let log_path = log_dir.join("bootstrapper.log");
23
24 // Build a stderr logger.
25 let stderr = ConsoleAppender::builder().target(Target::Stderr).build();
26
27 // Logging to log file.
28 let log_file = FileAppender::builder()
29 // Pattern: https://docs.rs/log4rs/*/log4rs/encode/pattern/index.html
30 .encoder(Box::new(PatternEncoder::new("{d} - {m}{n}")))
31 .build(log_path)
32 .context("Failed to create file appender")?;
33
34 let config = Config::builder()
35 .appender(Appender::builder().build("logfile", Box::new(log_file)))
36 .appender(
37 Appender::builder()
38 .filter(Box::new(ThresholdFilter::new(level)))
39 .build("stderr", Box::new(stderr)),
40 )
41 .build(
42 Root::builder()
43 .appender("logfile")
44 .appender("stderr")
45 .build(LevelFilter::Trace),
46 )
47 .context("Failed to build config")?;
48
49 let handle = log4rs::init_config(config).context("failed to initiate config")?;
50
51 Ok(handle)
52}

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected