MCPcopy Create free account
hub / github.com/Commit-Boost/commit-boost-client / initialize_tracing_log

Function initialize_tracing_log

crates/common/src/utils.rs:240–324  ·  view source on GitHub ↗

LOGGING

(
    module_id: &str,
    settings: LogsSettings,
)

Source from the content-addressed store, hash-verified

238
239// LOGGING
240pub fn initialize_tracing_log(
241 module_id: &str,
242 settings: LogsSettings,
243) -> eyre::Result<(Option<WorkerGuard>, Option<WorkerGuard>)> {
244 let format = Format::default().with_target(false).compact();
245
246 let mut stdout_guard = None;
247 let mut file_guard = None;
248 let mut layers = Vec::new();
249
250 if settings.stdout.enabled {
251 let config = settings.stdout;
252
253 let (writer, guard) = tracing_appender::non_blocking(std::io::stdout());
254 stdout_guard = Some(guard);
255
256 let filter = format_crates_filter(Level::INFO.as_str(), config.level.as_str());
257 let format = format.clone().with_ansi(config.color);
258 if config.use_json {
259 let layer = Layer::default()
260 .event_format(format)
261 .json()
262 .flatten_event(true)
263 .with_current_span(true)
264 .with_span_list(false)
265 .with_writer(writer)
266 .with_filter(filter)
267 .boxed();
268
269 layers.push(layer);
270 } else {
271 let layer = Layer::default()
272 .event_format(format)
273 .with_writer(writer)
274 .with_filter(filter)
275 .boxed();
276
277 layers.push(layer);
278 }
279 };
280
281 if settings.file.enabled {
282 let config = settings.file;
283
284 let mut builder =
285 tracing_appender::rolling::Builder::new().filename_prefix(module_id.to_lowercase());
286 if let Some(value) = config.max_files {
287 builder = builder.max_log_files(value);
288 }
289 let file_appender = builder
290 .rotation(Rotation::DAILY)
291 .build(config.dir_path)
292 .expect("failed building rolling file appender");
293 let (writer, guard) = tracing_appender::non_blocking(file_appender);
294 file_guard = Some(guard);
295
296 let filter = format_crates_filter(Level::INFO.as_str(), config.level.as_str());
297 let format = format.clone().with_ansi(false);

Callers 4

mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 1

format_crates_filterFunction · 0.85

Tested by

no test coverage detected