This commit is contained in:
Brad Stein 2025-06-25 16:52:26 -05:00
parent 8552248da4
commit f76b7f29eb
2 changed files with 12 additions and 15 deletions

View File

@ -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<WorkerGuard> {
// 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()?;
/* autocycle task */
// tokio::spawn(async { monitor_gc311_disconnect().await.ok(); });

View File

@ -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<ReceiverStream<Result<VideoPacket, Status>>> {
gst::init().context("gst init")?;