Compare commits

...

1 Commits

Author SHA1 Message Date
506ce117d3 refactor? 2024-02-16 13:43:24 +01:00
16 changed files with 44 additions and 34 deletions

22
Cargo.lock generated
View File

@ -2041,6 +2041,16 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
[[package]] [[package]]
name = "snitch" name = "snitch"
version = "1.0.0" version = "1.0.0"
dependencies = [
"chrono",
"log",
"reqwest",
"serde",
]
[[package]]
name = "snitch_srv"
version = "1.0.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"chrono", "chrono",
@ -2050,20 +2060,10 @@ dependencies = [
"rocket_db_pools", "rocket_db_pools",
"rocket_dyn_templates", "rocket_dyn_templates",
"serde", "serde",
"snitchlib", "snitch",
"sqlx", "sqlx",
] ]
[[package]]
name = "snitchlib"
version = "1.0.0"
dependencies = [
"chrono",
"log",
"reqwest",
"serde",
]
[[package]] [[package]]
name = "socket2" name = "socket2"
version = "0.4.7" version = "0.4.7"

View File

@ -1,2 +1,2 @@
[workspace] [workspace]
members = ["snitch", "snitchlib"] members = ["snitch", "snitch_srv"]

View File

@ -4,14 +4,7 @@ version = "1.0.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
snitchlib = { path = "../snitchlib" }
anyhow = "*"
log = "0.4" log = "0.4"
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
chrono = { version = "0.4", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] }
sqlx = { version = "0.5", features = ["runtime-tokio-rustls", "postgres", "sqlite", "migrate", "macros", "chrono"] } reqwest = { version = "0.11.12", default-features = false, features = ["rustls-tls", "serde_json", "blocking", "json"] }
rocket_dyn_templates = { version = "0.1.0-rc.2", features = ["handlebars"] }
rocket_db_pools = { version = "0.1.0-rc.2", features = ["sqlx_postgres"] }
rocket = { version = "0.5.0-rc.2", features = ["json"] }
clap = { version = "4.0.23", features = ["derive", "env"] }

View File

@ -1,5 +1,5 @@
use log::{Level, LevelFilter, Log, Metadata, Record}; use log::{Level, LevelFilter, Log, Metadata, Record};
use snitchlib::SnitchLogger; use snitch::SnitchLogger;
struct SimpleLogger; struct SimpleLogger;

View File

@ -1,3 +1,5 @@
use std::time::Duration;
use log::{Level, Log, Metadata, Record}; use log::{Level, Log, Metadata, Record};
use reqwest::blocking; use reqwest::blocking;
@ -22,10 +24,13 @@ impl<L: Log> SnitchLogger<L> {
impl<L: Log> Log for SnitchLogger<L> { impl<L: Log> Log for SnitchLogger<L> {
fn enabled(&self, metadata: &Metadata) -> bool { fn enabled(&self, metadata: &Metadata) -> bool {
self.wrapped.enabled(metadata) || metadata.level() <= Level::Warn dbg!(self.wrapped.enabled(metadata) || metadata.level() <= Level::Warn)
} }
fn log(&self, record: &Record) { fn log(&self, record: &Record) {
eprintln!("log called");
eprintln!("log called");
eprintln!("log called");
eprintln!("log called"); eprintln!("log called");
self.wrapped.log(record); self.wrapped.log(record);
@ -43,7 +48,12 @@ impl<L: Log> Log for SnitchLogger<L> {
}; };
let client = blocking::Client::new(); let client = blocking::Client::new();
if let Err(e) = client.post(&self.url).json(&record).send() { if let Err(e) = client
.post(&self.url)
.json(&record)
.timeout(Duration::from_secs(2))
.send()
{
// TODO: log error (without sending it) // TODO: log error (without sending it)
eprintln!("failed to send log record: {e:?}"); eprintln!("failed to send log record: {e:?}");
} }

17
snitch_srv/Cargo.toml Normal file
View File

@ -0,0 +1,17 @@
[package]
name = "snitch_srv"
version = "1.0.0"
edition = "2021"
[dependencies]
snitch = { path = "../snitch" }
anyhow = "*"
log = "0.4"
serde = { version = "1", features = ["derive"] }
chrono = { version = "0.4", features = ["serde"] }
sqlx = { version = "0.5", features = ["runtime-tokio-rustls", "postgres", "sqlite", "migrate", "macros", "chrono"] }
rocket_dyn_templates = { version = "0.1.0-rc.2", features = ["handlebars"] }
rocket_db_pools = { version = "0.1.0-rc.2", features = ["sqlx_postgres"] }
rocket = { version = "0.5.0-rc.2", features = ["json"] }
clap = { version = "4.0.23", features = ["derive", "env"] }

View File

@ -1,5 +1,5 @@
use rocket::{http::Status, serde::json::Json, State}; use rocket::{http::Status, serde::json::Json, State};
use snitchlib::LogMsg; use snitch::LogMsg;
use sqlx::query; use sqlx::query;
use crate::database::Database; use crate::database::Database;

View File

@ -1,10 +0,0 @@
[package]
name = "snitchlib"
version = "1.0.0"
edition = "2021"
[dependencies]
log = "0.4"
serde = { version = "1", features = ["derive"] }
chrono = { version = "0.4", features = ["serde"] }
reqwest = { version = "0.11.12", default-features = false, features = ["rustls-tls", "serde_json", "blocking", "json"] }