anvil_zksync_types/
log.rs1use clap::ValueEnum;
2use core::fmt;
3use serde::{Deserialize, Serialize};
4use tracing::level_filters::LevelFilter;
5
6#[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}