mpv-rpc/src/logging.rs

69 lines
1.4 KiB
Rust
Raw Normal View History

2023-02-04 20:34:19 +01:00
use std::env;
pub mod macros;
pub use macros::{error, warning, info};
#[allow(dead_code)]
#[derive(PartialEq, PartialOrd)]
pub enum LogLevel {
None = 0,
Error = 1,
Warn = 2,
Info = 3
}
impl From<u32> for LogLevel {
fn from(num: u32) -> Self {
match num {
0 => LogLevel::None,
1 => LogLevel::Error,
2 => LogLevel::Warn,
3 => LogLevel::Info,
2023-02-06 01:20:20 +01:00
_ => LogLevel::Error
2023-02-04 20:34:19 +01:00
}
}
}
#[allow(dead_code)]
pub struct Logger {
log_level: LogLevel
}
#[allow(dead_code)]
impl Logger {
pub fn new(log_level: LogLevel) -> Self {
Self {
log_level
}
}
pub fn from_env() -> Self {
let level = env::var("MPV_RPC_LOG").unwrap_or_default();
2023-02-06 01:20:20 +01:00
let level: u32 = level.parse().unwrap_or(LogLevel::Error as u32);
2023-02-04 20:34:19 +01:00
let log_level = LogLevel::from(level);
Self {
log_level
}
}
pub fn info(&self, message: &str) {
if self.log_level >= LogLevel::Info {
println!("[mpv-rpc (INFO)] {}", message);
}
}
pub fn warning(&self, message: &str) {
if self.log_level >= LogLevel::Warn {
println!("[mpv-rpc (WARN)] {}", message);
}
}
pub fn error(&self, message: &str) {
if self.log_level >= LogLevel::Error {
println!("[mpv-rpc (ERROR)] {}", message);
}
}
}