ringlog/
format.rs

1// Copyright 2021 Twitter, Inc.
2// Licensed under the Apache License, Version 2.0
3// http://www.apache.org/licenses/LICENSE-2.0
4
5use crate::*;
6
7use clocksource::datetime::DateTime;
8
9pub type FormatFunction = fn(
10    write: &mut dyn std::io::Write,
11    now: DateTime,
12    record: &Record,
13) -> Result<(), std::io::Error>;
14
15pub fn default_format(
16    w: &mut dyn std::io::Write,
17    now: DateTime,
18    record: &Record,
19) -> Result<(), std::io::Error> {
20    writeln!(
21        w,
22        "{} {} [{}] {}",
23        now,
24        record.level(),
25        record.module_path().unwrap_or("<unnamed>"),
26        record.args()
27    )
28}
29
30pub fn klog_format(
31    w: &mut dyn std::io::Write,
32    now: DateTime,
33    record: &Record,
34) -> Result<(), std::io::Error> {
35    writeln!(w, "{} {}", now, record.args())
36}