MCPcopy Create free account
hub / github.com/GCWing/BitFun / build_log_targets

Function build_log_targets

src/apps/desktop/src/logging.rs:211–303  ·  view source on GitHub ↗
(config: &LogConfig)

Source from the content-addressed store, hash-verified

209}
210
211pub fn build_log_targets(config: &LogConfig) -> Vec<Target> {
212 let mut targets = Vec::new();
213 let session_dir = config.session_log_dir.clone();
214 let use_stdout_only = is_embedded_webdriver_mode();
215
216 if config.is_debug || use_stdout_only {
217 targets.push(
218 Target::new(TargetKind::Stdout)
219 .filter(|metadata| {
220 let target = metadata.target();
221 !target.starts_with("ai")
222 && !target.starts_with("webview")
223 && !is_flashgrep_target(target)
224 })
225 .format(|out, message, record| {
226 let target = record.target();
227 let simplified_target = if target.starts_with("webview:") {
228 "webview"
229 } else {
230 target
231 };
232
233 let (level_color, reset) = match record.level() {
234 log::Level::Error => ("\x1b[31m", "\x1b[0m"), // Red
235 log::Level::Warn => ("\x1b[33m", "\x1b[0m"), // Yellow
236 log::Level::Info => ("\x1b[32m", "\x1b[0m"), // Green
237 log::Level::Debug => ("\x1b[36m", "\x1b[0m"), // Cyan
238 log::Level::Trace => ("\x1b[90m", "\x1b[0m"), // Gray
239 };
240
241 out.finish(format_args!(
242 "[{}][tid:{}][{}{}{}][{}] {}",
243 chrono::Local::now().format("%Y-%m-%dT%H:%M:%S%.3f"),
244 get_thread_id(),
245 level_color,
246 record.level(),
247 reset,
248 simplified_target,
249 message
250 ))
251 }),
252 );
253 }
254
255 if !use_stdout_only {
256 let app_log_dir = session_dir.clone();
257 targets.push(
258 Target::new(TargetKind::Folder {
259 path: app_log_dir,
260 file_name: Some("app".into()),
261 })
262 .filter(|metadata| {
263 let target = metadata.target();
264 !target.starts_with("ai")
265 && !target.starts_with("webview")
266 && !is_flashgrep_target(target)
267 })
268 .format(format_log_plain),

Callers 1

runFunction · 0.85

Calls 7

formatMethod · 0.80
targetMethod · 0.80
is_flashgrep_targetFunction · 0.70
cloneMethod · 0.45
pushMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected