anvil_zksync_types/
log.rs

1use clap::ValueEnum;
2use core::fmt;
3use serde::{Deserialize, Serialize};
4use tracing::level_filters::LevelFilter;
5
6/// Log filter level for the node.
7#[derive(Default, Debug, Copy, Clone, ValueEnum, Serialize, Deserialize)]
8#[serde(rename_all = "lowercase")]
9pub enum LogLevel {
10    Trace,
11    Debug,
12    Info,
13    Warn,
14    Error,
15    #[default]
16    None,
17}
18
19impl fmt::Display for LogLevel {
20    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21        match *self {
22            LogLevel::Trace => f.pad("TRACE"),
23            LogLevel::Debug => f.pad("DEBUG"),
24            LogLevel::Info => f.pad("INFO"),
25            LogLevel::Warn => f.pad("WARN"),
26            LogLevel::Error => f.pad("ERROR"),
27            LogLevel::None => f.pad("NONE"),
28        }
29    }
30}
31
32impl From<LogLevel> for LevelFilter {
33    fn from(value: LogLevel) -> Self {
34        match value {
35            LogLevel::Trace => LevelFilter::TRACE,
36            LogLevel::Debug => LevelFilter::DEBUG,
37            LogLevel::Info => LevelFilter::INFO,
38            LogLevel::Warn => LevelFilter::WARN,
39            LogLevel::Error => LevelFilter::ERROR,
40            LogLevel::None => LevelFilter::OFF,
41        }
42    }
43}