MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / create

Method create

crates/opencode-util/src/logging.rs:282–315  ·  view source on GitHub ↗
(tags: Option<HashMap<String, String>>)

Source from the content-addressed store, hash-verified

280
281impl Log {
282 pub fn create(tags: Option<HashMap<String, String>>) -> Logger {
283 let tags = tags.unwrap_or_default();
284
285 if let Some(service) = tags.get("service") {
286 if let Ok(loggers) = LOGGERS.lock() {
287 if let Some(cached) = loggers.get(service) {
288 return Logger {
289 tags: cached.tags.clone(),
290 level: cached.level,
291 writer: Arc::clone(&cached.writer),
292 };
293 }
294 }
295 }
296
297 let writer: Arc<Mutex<Box<dyn Write + Send>>> =
298 Arc::new(Mutex::new(Box::new(std::io::stderr())));
299 let logger = Logger::new(tags.clone(), Arc::clone(&writer));
300
301 if let Some(service) = tags.get("service") {
302 if let Ok(mut loggers) = LOGGERS.lock() {
303 loggers.insert(
304 service.to_string(),
305 CachedLogger {
306 tags: tags.clone(),
307 level: logger.level,
308 writer: Arc::clone(&writer),
309 },
310 );
311 }
312 }
313
314 logger
315 }
316
317 pub fn default() -> Logger {
318 let mut tags = HashMap::new();

Callers 3

import_session_dataFunction · 0.45
initMethod · 0.45
init_tracingFunction · 0.45

Calls 3

newFunction · 0.85
getMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected