pub trait LogFormat<T> {
fn format<W: Write>(
&self,
w: &mut W,
severity: Severity,
message: T
) -> Result<()>;
fn emerg<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
fn alert<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
fn crit<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
fn err<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
fn warning<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
fn notice<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
fn info<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
fn debug<W: Write>(&mut self, w: &mut W, message: T) -> Result<()> { ... }
}