Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
node: Enable logging via systemd journal
Lorenz Leutgeb committed 9 months ago
commit b2a41025ce42bc4f9e6b405a00a174b5e0cd3d06
parent c7f3c47f9adf967f2886d066cfd0fb9e607864eb
2 files changed +24 -2
modified crates/radicle-node/src/main.rs
@@ -4,7 +4,6 @@ use std::{env, fs, net, path::PathBuf, process};
use anyhow::Context;
use crossbeam_channel as chan;

-
use radicle::logger;
use radicle::node::device::Device;
use radicle::profile;
use radicle_node::crypto::ssh::keystore::{Keystore, MemorySigner};
@@ -91,7 +90,24 @@ fn execute() -> anyhow::Result<()> {
    let config = options.config.unwrap_or_else(|| home.config());
    let mut config = profile::Config::load(&config)?;

-
    logger::init(options.log.unwrap_or(config.node.log))?;
+
    let level = options.log.unwrap_or(config.node.log);
+

+
    let logger = {
+
        let journal = if cfg!(all(feature = "systemd", target_family = "unix")) {
+
            radicle_systemd::journal::logger::<&str, &str, _>("radicle-node".to_string(), [])?
+
        } else {
+
            None
+
        };
+

+
        if let Some(logger) = journal {
+
            logger
+
        } else {
+
            Box::new(radicle::logger::Logger::new(level))
+
        }
+
    };
+

+
    log::set_boxed_logger(logger)?;
+
    log::set_max_level(level.to_level_filter());

    log::info!(target: "node", "Starting node..");
    log::info!(target: "node", "Version {} ({})", env!("RADICLE_VERSION"), env!("GIT_HEAD"));
modified crates/radicle/src/logger.rs
@@ -17,6 +17,12 @@ pub struct Logger {
    level: Level,
}

+
impl Logger {
+
    pub fn new(level: Level) -> Self {
+
        Self { level }
+
    }
+
}
+

impl Log for Logger {
    fn enabled(&self, metadata: &Metadata) -> bool {
        metadata.level() <= self.level