A simple helper that sends logs over TCP, for programs without terminal output, such as TUIs.
See examples/log.rs for an example of integration with the log crate.
cargo add logcast
// src/macros.rs
macro_rules! log {
($($arg:tt)*) => {{
crate::LOGGER.log(&format!($($arg)*));
}};
}// src/main.rs
#[macro_use]
mod macros;
use std::sync::LazyLock;
use logcast::Logger;
pub static LOGGER: LazyLock<Logger> = LazyLock::new(|| Logger::new("127.0.0.1:8080"));log!("Test");
log!("{:?}", service);To view the logs, open another terminal and run a program that listens for TCP connections, such as ncat -l --keep-open 8080, as shown in the example below.
└─$ ncat -l --keep-open 8080
[2025-11-10 20:55:04] Test
[2025-11-10 20:55:04] Service { name: "cron.service", description: "Regular background program processing daemon", state: ServiceState { load: "loaded", active: "active", sub: "running", file: "enabled" } }This project is open-source under the MIT License.
