From f76b7f29eb683e8b18a331f48740b91ca358b22b Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Wed, 25 Jun 2025 16:52:26 -0500 Subject: [PATCH] updates --- server/src/main.rs | 25 +++++++++++-------------- server/src/video.rs | 2 +- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 876289e..bf08720 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -11,6 +11,7 @@ use tonic::{transport::Server, Request, Response, Status}; use tracing::{info, trace, warn}; use tracing_subscriber::{filter::EnvFilter, fmt, prelude::*}; use tracing_appender::non_blocking; +use tracing_appender::non_blocking::WorkerGuard; use udev::{MonitorBuilder}; use lesavka_server::{usb_gadget::UsbGadget, video}; @@ -22,29 +23,30 @@ use lesavka_common::lesavka::{ }; // ───────────────── helper ───────────────────── -fn ensure_log_file() -> anyhow::Result<()> { +fn init_tracing() -> anyhow::Result { + // 1. create file writer + guard let file = std::fs::OpenOptions::new() .create(true).write(true).truncate(true) .open("/tmp/lesavka-server.log")?; - let (file_writer, _guard) = non_blocking(file); - - let env_filter = EnvFilter::try_from_default_env() - .unwrap_or_else(|_| EnvFilter::new("lesavka_server=trace")); + let (file_writer, guard) = non_blocking(file); + // 2. build subscriber once + let env = EnvFilter::try_from_default_env() + .unwrap_or_else(|_| EnvFilter::new("lesavka_server=info")); let console_layer = fmt::layer() .with_target(true) .with_thread_ids(true); - let file_layer = fmt::layer() + let file_layer = fmt::layer() .with_writer(file_writer) .with_ansi(false); tracing_subscriber::registry() - .with(env_filter) + .with(env) .with(console_layer) .with(file_layer) .init(); - Ok(()) + Ok(guard) } /*─────────────────── tonic service ─────────────────────*/ @@ -193,12 +195,7 @@ impl Relay for Handler { #[tokio::main(flavor = "multi_thread", worker_threads = 4)] async fn main() -> anyhow::Result<()> { /* logging */ - ensure_log_file()?; - fmt().with_env_filter( - EnvFilter::try_from_default_env() - .unwrap_or_else(|_| EnvFilter::new("lesavka_server=info")), - ) - .init(); + let _log_guard = init_tracing()?; /* auto‑cycle task */ // tokio::spawn(async { monitor_gc311_disconnect().await.ok(); }); diff --git a/server/src/video.rs b/server/src/video.rs index a5cc3f6..b149dc0 100644 --- a/server/src/video.rs +++ b/server/src/video.rs @@ -11,7 +11,7 @@ use tonic::Status; pub async fn spawn_camera( dev: &str, id: u32, - max_bitrate_kbit: u32, + _max_bitrate_kbit: u32, ) -> anyhow::Result>> { gst::init().context("gst init")?;