Compare commits

...

3 Commits

Author SHA1 Message Date
ce7866df09 remove nonsense errortypes
All checks were successful
CI / Saltfish [custom_pieces] (push) Successful in -2m49s
CI / Saltfish (push) Successful in -2m45s
2024-04-12 12:18:21 +02:00
f80d2a9c1d cleanup implementing fern 2024-04-12 12:14:56 +02:00
ad1fab1aa2 use fern instead of tracing 2024-04-12 12:07:05 +02:00
8 changed files with 31 additions and 113 deletions

View File

@ -12,6 +12,6 @@ clap = { version = "4.5.4", features = ["derive"] }
serde = { version = "1.0.197", features = ["derive"] } serde = { version = "1.0.197", features = ["derive"] }
serde_derive = { version = "1.0.197" } serde_derive = { version = "1.0.197" }
num_cpus = "1.16.0" num_cpus = "1.16.0"
tracing = { version = "0.1.40", features = ["log"] } fern = { version = "0.6.2", features = ["colored"] }
tracing-appender = { version = "0.2.3" } log = "0.4.21"
tracing-subscriber = { version = "0.3.18", features = ["fmt", "tracing-log"] } humantime = "2.1.0"

View File

@ -20,7 +20,7 @@ pub struct Args {
)] )]
log_level: Option<String>, log_level: Option<String>,
#[arg(long)] #[arg(long)]
log_file: Option<PathBuf>, log_file: Option<String>,
} }
impl Default for Args { impl Default for Args {
@ -59,7 +59,7 @@ impl Args {
self.log_level.clone() self.log_level.clone()
} }
pub fn get_log_file(&self) -> Option<PathBuf> { pub fn get_log_file(&self) -> Option<String> {
self.log_file.clone() self.log_file.clone()
} }
} }

View File

@ -1,4 +1,4 @@
use std::{fs::File, io::Read, path::{Path, PathBuf}, u8}; use std::{fs::File, io::Read, path::Path, u8};
use serde::Deserialize; use serde::Deserialize;
use crate::config::{args::Args, engine::Engine}; use crate::config::{args::Args, engine::Engine};
@ -20,7 +20,7 @@ pub struct Config {
pub engine: Option<Engine>, pub engine: Option<Engine>,
pub log_level: Option<String>, pub log_level: Option<String>,
pub log_file: Option<PathBuf> pub log_file: Option<String>
} }
impl Default for Config { impl Default for Config {
@ -32,7 +32,7 @@ impl Default for Config {
engine: Some(Engine::default()), engine: Some(Engine::default()),
log_level: Some("info".to_string()), log_level: Some("info".to_string()),
log_file: Some(PathBuf::from("saltfish.log")), log_file: Some("saltfish.log".to_string()),
} }
} }
} }

View File

@ -1,38 +0,0 @@
use std::io;
use crate::errors::ErrorType;
#[derive(Debug)]
pub enum ConfigError {
Arguments(clap::error::Error),
ConfigFile(io::Error),
Merging(String)
}
impl ConfigError {
fn throw(self) -> ErrorType {
match self {
Self::Arguments(error) => {
ErrorType::new(
"Parsing Arguments".to_string(),
error.to_string(),
false
)
},
Self::ConfigFile(error) => {
ErrorType::new(
"Reading Config File".to_string(),
error.to_string(),
false
)
},
Self::Merging(error) => {
ErrorType::new(
"Reading Config File".to_string(),
error,
false
)
}
}
}
}

View File

@ -1,27 +1,22 @@
mod config; mod config;
use std::str::FromStr;
mod args; mod args;
mod engine; mod engine;
pub mod error; use crate::logging::logger_init;
use std::str::FromStr;
use crate::logger_update;
use self::{args::Args, config::Config}; use self::{args::Args, config::Config};
use clap::Parser; use clap::Parser;
use tracing::{debug, error, info, Level};
pub fn get_config() -> Option<Config> { pub fn get_config() -> Option<Config> {
let args = Args::try_parse().or_else(|err|{ let args = Args::try_parse().or_else(|err|{
if ! err.use_stderr() { if err.use_stderr() {
println!("{}", err); println!("{}", err);
return Err(()) return Err(())
} }
error!("{}", err);
info!("continuing withouth commandline arguments");
Ok(Args::default()) Ok(Args::default())
}); });
@ -30,7 +25,7 @@ pub fn get_config() -> Option<Config> {
Ok(args) => { Ok(args) => {
let config_path = args.get_config_path().unwrap_or_default(); let config_path = args.get_config_path().unwrap_or_default();
let config = Config::read(&config_path).merge_args(&args); let config = Config::read(&config_path).merge_args(&args);
logger_update(&config.log_file.clone().unwrap(), Level::from_str(&config.log_level.clone().unwrap()).unwrap()); logger_init(config.log_file.clone().unwrap(), log::Level::from_str(&config.log_level.clone().unwrap()).unwrap()).unwrap();
Some(config) Some(config)
} }
} }

View File

@ -1,23 +0,0 @@
use crate::config::error::ConfigError;
#[derive(Debug)]
pub struct ErrorType {
kind: String,
message: String,
fatal: bool
}
impl ErrorType {
pub fn new(kind: String, message: String, fatal: bool) -> Self {
ErrorType { kind, message, fatal }
}
}
#[derive(Debug)]
pub enum SaltfishError {
ConfigError(ConfigError)
}

View File

@ -1,27 +1,18 @@
use std::path::Path; use std::time::SystemTime;
use tracing::Level;
use tracing_subscriber::fmt;
pub fn logger_init() {
let subscriber = fmt()
.compact()
.with_max_level(Level::DEBUG)
.finish();
// tracing::subscriber::set_global_default(subscriber)
// .expect("Failed to set global default subscriber");
} pub fn logger_init(file: String, level: log::Level) -> Result<(), fern::InitError> {
fern::Dispatch::new()
pub fn logger_update(file: &Path, level: Level) { .format(|out, message, record| {
let file_appender = tracing_appender::rolling::never(file.parent().unwrap(), file.file_name().unwrap()); out.finish(format_args!(
let (non_blocking, _guard) = tracing_appender::non_blocking(file_appender); "[{} {} {}] {}",
println!("dir: {:?} | file: {:?}", file.parent(), file.file_name()); humantime::format_rfc3339_seconds(SystemTime::now()),
let subscriber = fmt() record.level(),
.compact() record.target(),
.with_max_level(level) message
.with_writer(non_blocking) ))
.finish(); })
tracing::subscriber::set_global_default(subscriber) .level(level.to_level_filter())
.expect("Failed to set global default subscriber"); .chain(fern::log_file(file)?)
.apply()?;
Ok(())
} }

View File

@ -5,22 +5,15 @@
use crate::config::get_config; use crate::config::get_config;
use log::trace;
mod chess; mod chess;
mod config; mod config;
mod errors;
mod logging; mod logging;
use crate::logging::*;
fn main() { fn main() {
// logger_init(); let config = get_config().unwrap();
let config = get_config(); trace!("{:?}", config);
if config.is_none() {
return
}
println!("2");
} }