mirror of
https://github.com/stakwork/sphinx-key.git
synced 2026-02-12 03:05:27 +01:00
32 lines
1.1 KiB
Rust
32 lines
1.1 KiB
Rust
use rocket::tokio;
|
|
use std::io::Write;
|
|
use std::{env, fs};
|
|
|
|
const DEFAULT_ERROR_LOG_PATH: &str = "/root/.lightning/broker_errors.log";
|
|
|
|
pub fn log_errors(mut error_rx: tokio::sync::broadcast::Receiver<Vec<u8>>) {
|
|
// collect errors
|
|
tokio::spawn(async move {
|
|
let err_log_path =
|
|
env::var("BROKER_ERROR_LOG_PATH").unwrap_or(DEFAULT_ERROR_LOG_PATH.to_string());
|
|
if let Ok(mut file) = fs::OpenOptions::new()
|
|
.create(true) // create if doesn't exist
|
|
.append(true)
|
|
.open(err_log_path)
|
|
{
|
|
while let Ok(err_msg) = error_rx.recv().await {
|
|
let mut log = format!("[{}]: ", chrono::Utc::now().to_string())
|
|
.as_bytes()
|
|
.to_vec();
|
|
log.extend_from_slice(&err_msg);
|
|
log.extend_from_slice(b"\n");
|
|
if let Err(e) = file.write_all(&log) {
|
|
log::warn!("failed to write error to log {:?}", e);
|
|
}
|
|
}
|
|
} else {
|
|
log::warn!("FAILED TO OPEN ERROR LOG FILE");
|
|
}
|
|
});
|
|
}
|