MCPcopy Create free account
hub / github.com/clockworklabs/SpacetimeDB / write

Method write

crates/core/src/database_logger.rs:357–381  ·  view source on GitHub ↗
(&self, level: LogLevel, &record: &Record<'_>, bt: &dyn BacktraceProvider)

Source from the content-addressed store, hash-verified

355 }
356
357 pub fn write(&self, level: LogLevel, &record: &Record<'_>, bt: &dyn BacktraceProvider) {
358 let (trace, frames);
359 let event = match level {
360 LogLevel::Error => LogEvent::Error(record),
361 LogLevel::Warn => LogEvent::Warn(record),
362 LogLevel::Info => LogEvent::Info(record),
363 LogLevel::Debug => LogEvent::Debug(record),
364 LogLevel::Trace => LogEvent::Trace(record),
365 LogLevel::Panic => {
366 trace = bt.capture();
367 frames = trace.frames();
368 LogEvent::Panic { record, trace: &frames }
369 }
370 };
371 // TODO(perf): Reuse serialization buffer.
372 let mut buf = serde_json::to_string(&event).unwrap();
373 buf.push('\n');
374 let buf = Bytes::from(buf);
375 self.cmd
376 .send(Cmd::Append {
377 ts: record.ts,
378 record: buf,
379 })
380 .expect("log worker panicked");
381 }
382
383 /// Stream the contents of this logger.
384 ///

Callers 4

infoMethod · 0.45
warnMethod · 0.45
errorMethod · 0.45
write_logsFunction · 0.45

Calls 7

sendMethod · 0.65
ErrorEnum · 0.50
to_stringFunction · 0.50
captureMethod · 0.45
framesMethod · 0.45
unwrapMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected