Skip to main content

tuwunel_core/log/
fmt.rs

1use std::fmt::Write;
2
3use super::{Level, color};
4use crate::Result;
5
6pub fn html<S>(out: &mut S, level: &Level, span: &str, msg: &str) -> Result
7where
8	S: Write + ?Sized,
9{
10	let color = color::code_tag(level);
11	let level = level.as_str().to_uppercase();
12	write!(
13		out,
14		"<font data-mx-color=\"{color}\"><code>{level:>5}</code></font> <code>{span:^12}</code> \
15		 <code>{msg}</code><br>"
16	)?;
17
18	Ok(())
19}
20
21pub fn markdown<S>(out: &mut S, level: &Level, span: &str, msg: &str) -> Result
22where
23	S: Write + ?Sized,
24{
25	let level = level.as_str().to_uppercase();
26	writeln!(out, "`{level:>5}` `{span:^12}` `{msg}`")?;
27
28	Ok(())
29}
30
31pub fn markdown_table<S>(out: &mut S, level: &Level, span: &str, msg: &str) -> Result
32where
33	S: Write + ?Sized,
34{
35	let level = level.as_str().to_uppercase();
36	writeln!(out, "| {level:>5} | {span:^12} | {msg} |")?;
37
38	Ok(())
39}
40
41pub fn markdown_table_head<S>(out: &mut S) -> Result
42where
43	S: Write + ?Sized,
44{
45	write!(out, "| level | span | message |\n| ------: | :-----: | :------- |\n")?;
46
47	Ok(())
48}