From 96182826e4816a07f4501083ad610c0481c92192 Mon Sep 17 00:00:00 2001 From: "Tom A. Wagner" Date: Tue, 11 Jan 2022 12:12:50 +0100 Subject: [PATCH] logging: Use glib as `log` backend instead of `env_logger`. This makes log output use the same logger as gtk itself and as most other gtk applications --- Cargo.lock | 18 +++--------------- Cargo.toml | 2 +- meson.build | 2 +- src/main.rs | 20 +++++++++++++++----- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a4449ad..c7b4ee4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -59,7 +59,7 @@ dependencies = [ "cexpr", "clang-sys", "clap", - "env_logger 0.8.4", + "env_logger", "lazy_static", "lazycell", "log", @@ -210,19 +210,6 @@ dependencies = [ "termcolor", ] -[[package]] -name = "env_logger" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "errno" version = "0.2.7" @@ -415,6 +402,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", + "log", "once_cell", "smallvec", ] @@ -587,7 +575,7 @@ dependencies = [ name = "helvum" version = "0.3.2" dependencies = [ - "env_logger 0.9.0", + "glib", "gtk4", "log", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 1c137eb..8a12458 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,8 +16,8 @@ categories = ["gui", "multimedia"] [dependencies] pipewire = "0.4" gtk = { version = "0.3", package = "gtk4" } +glib = { version = "0.14", features = ["log"] } log = "0.4.11" -env_logger = "0.9.0" once_cell = "1.7.2" diff --git a/meson.build b/meson.build index 4965b78..9c3b91b 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,7 @@ project( base_id = 'org.freedesktop.ryuukyu.Helvum' -dependency('glib-2.0', version: '>= 2.48') +dependency('glib-2.0', version: '>= 2.66') dependency('gtk4', version: '>= 4.4.0') dependency('libpipewire-0.3') diff --git a/src/main.rs b/src/main.rs index 874cf63..dd5c6e3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,10 +21,8 @@ mod application; mod pipewire_connection; mod view; -use gtk::{ - glib::{self, PRIORITY_DEFAULT}, - prelude::*, -}; +use glib::PRIORITY_DEFAULT; +use gtk::prelude::*; use pipewire::spa::Direction; /// Messages sent by the GTK thread to notify the pipewire thread. @@ -96,8 +94,20 @@ pub struct PipewireLink { pub port_to: u32, } +static GLIB_LOGGER: glib::GlibLogger = glib::GlibLogger::new( + glib::GlibLoggerFormat::Structured, + glib::GlibLoggerDomain::CrateTarget, +); + +fn init_glib_logger() { + log::set_logger(&GLIB_LOGGER).expect("Failed to set logger"); + + // Glib does not have a "Trace" log level, so only print messages "Debug" or higher priority. + log::set_max_level(log::LevelFilter::Debug); +} + fn main() -> Result<(), Box> { - env_logger::init(); + init_glib_logger(); gtk::init()?; // Aquire main context so that we can attach the gtk channel later.