debug: change logging format

This commit is contained in:
Mark Poliakov 2025-01-30 21:05:57 +02:00
parent 2f46a36255
commit e3bdc24731
2 changed files with 22 additions and 18 deletions

View File

@ -33,6 +33,7 @@ use crate::{
object::KObject, object::KObject,
}, },
task::{process::Process, thread::Thread}, task::{process::Process, thread::Thread},
time::monotonic_time,
}; };
const MAX_DEBUG_SINKS: usize = 8; const MAX_DEBUG_SINKS: usize = 8;
@ -160,7 +161,6 @@ impl log::Log for DebugSinkWrapper {
let level = LogLevel::from(record.level()); let level = LogLevel::from(record.level());
let sink = self.sink(); let sink = self.sink();
let cpu = Cpu::try_local().map(|c| c.id()); let cpu = Cpu::try_local().map(|c| c.id());
let file = record.file().unwrap_or("<???>");
let line = record.line().unwrap_or(0); let line = record.line().unwrap_or(0);
let args = record.args(); let args = record.args();
@ -171,25 +171,30 @@ impl log::Log for DebugSinkWrapper {
}; };
let mut writer = SinkWriter { sink }; let mut writer = SinkWriter { sink };
let now = monotonic_time();
let s = now.seconds();
match record.target() { match record.target() {
"program" => { ":program" => {
write!(writer, "{args}").ok(); write!(writer, "{prefix}{s:06}:").ok();
}
"raw" => {
write!(writer, "{prefix}{args}{suffix}").ok();
}
"io" => {
writeln!(writer, "[io] {args}").ok();
}
_ => {
write!(writer, "{prefix}").ok();
if let Some(cpu) = cpu { if let Some(cpu) = cpu {
write!(writer, "{cpu}:").ok(); write!(writer, "{cpu}:").ok();
} else { } else {
write!(writer, "?:").ok(); write!(writer, "?:").ok();
} }
writeln!(writer, "{file}:{line}: {args}{suffix}").ok(); write!(writer, "ptrace:{args}").ok();
}
":raw" => {
write!(writer, "{prefix}{args}{suffix}").ok();
}
target => {
write!(writer, "{prefix}{s:06}:").ok();
if let Some(cpu) = cpu {
write!(writer, "{cpu}:").ok();
} else {
write!(writer, "?:").ok();
}
writeln!(writer, "{target}:{line}: {args}{suffix}").ok();
} }
} }
} }
@ -429,11 +434,10 @@ pub fn disable_early_sinks() {
/// Print a trace message coming from a process /// Print a trace message coming from a process
pub fn program_trace(process: &Process, thread: &Thread, message: &str) { pub fn program_trace(process: &Process, thread: &Thread, message: &str) {
log::debug!( log::debug!(
target: "program", target: ":program",
"[trace {}:{}:{:?}] {message}\n", "{} ({}) {message}\n",
process.name,
process.id, process.id,
thread.id,
*thread.name.read()
); );
} }

View File

@ -134,7 +134,7 @@ impl ProcessId {
impl fmt::Display for ProcessId { impl fmt::Display for ProcessId {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "<Process {}>", self.0) write!(f, "{}", self.0)
} }
} }