MCPcopy Create free account
hub / github.com/PowerShell/DSC / enable_tracing

Function enable_tracing

resources/sshdconfig/src/util.rs:27–92  ·  view source on GitHub ↗

Enable tracing. # Arguments `trace_level` - The level of information to output `trace_format` - The format of the output # Errors This function will return an error if it fails to initialize tracing.

(trace_level: Option<&TraceLevel>, trace_format: &TraceFormat)

Source from the content-addressed store, hash-verified

25///
26/// This function will return an error if it fails to initialize tracing.
27pub fn enable_tracing(trace_level: Option<&TraceLevel>, trace_format: &TraceFormat) {
28 let trace_level = match trace_level {
29 Some(trace_level) => trace_level,
30 None => {
31 if let Ok(trace_level) = std::env::var("DSC_TRACE_LEVEL") {
32 &match trace_level.to_lowercase().as_str() {
33 "error" => TraceLevel::Error,
34 "warn" => TraceLevel::Warn,
35 "info" => TraceLevel::Info,
36 "debug" => TraceLevel::Debug,
37 "trace" => TraceLevel::Trace,
38 _ => {
39 eprintln!("{}: {trace_level}", t!("main.invalidTraceLevel"));
40 TraceLevel::Info
41 }
42 }
43 } else {
44 &TraceLevel::Info
45 }
46 }
47 };
48
49 let tracing_level = match trace_level {
50 TraceLevel::Error => Level::ERROR,
51 TraceLevel::Warn => Level::WARN,
52 TraceLevel::Info => Level::INFO,
53 TraceLevel::Debug => Level::DEBUG,
54 TraceLevel::Trace => Level::TRACE,
55 };
56
57 let filter = EnvFilter::try_from_default_env()
58 .or_else(|_| EnvFilter::try_new("warn"))
59 .unwrap_or_default()
60 .add_directive(tracing_level.into());
61 let layer = tracing_subscriber::fmt::Layer::default().with_writer(std::io::stderr);
62 let fmt = match trace_format {
63 TraceFormat::Default => {
64 layer
65 .with_ansi(true)
66 .with_level(true)
67 .with_line_number(true)
68 .boxed()
69 },
70 TraceFormat::Plaintext => {
71 layer
72 .with_ansi(false)
73 .with_level(true)
74 .with_line_number(false)
75 .boxed()
76 },
77 TraceFormat::Json => {
78 layer
79 .with_ansi(false)
80 .with_level(true)
81 .with_line_number(true)
82 .json()
83 .boxed()
84 }

Callers 1

mainFunction · 0.70

Calls 2

as_strMethod · 0.80
defaultFunction · 0.50

Tested by

no test coverage detected