mirror of
https://github.com/stakwork/sphinx-key.git
synced 2025-12-19 00:04:25 +01:00
broker logs errors to file
This commit is contained in:
@@ -13,7 +13,7 @@ use crate::util::read_broker_config;
|
||||
use clap::{App, AppSettings, Arg};
|
||||
use rocket::tokio::{
|
||||
self,
|
||||
sync::{mpsc, oneshot, broadcast},
|
||||
sync::{broadcast, mpsc, oneshot},
|
||||
};
|
||||
use std::env;
|
||||
use std::sync::Arc;
|
||||
@@ -55,6 +55,7 @@ pub struct ChannelReply {
|
||||
|
||||
const CLIENT_ID: &str = "sphinx-1";
|
||||
const BROKER_CONFIG_PATH: &str = "../broker.conf";
|
||||
const DEFAULT_ERROR_LOG_PATH: &str = "/root/.lightning/broker_errors.log";
|
||||
|
||||
#[rocket::launch]
|
||||
async fn rocket() -> _ {
|
||||
@@ -96,15 +97,32 @@ async fn run_main(parent_fd: i32) -> rocket::Rocket<rocket::Build> {
|
||||
|
||||
let (tx, rx) = mpsc::channel(1000);
|
||||
let (status_tx, mut status_rx) = mpsc::channel(1000);
|
||||
let (error_tx, _) = broadcast::channel(1000);
|
||||
let (error_tx, mut error_rx) = broadcast::channel(1000);
|
||||
log::info!("=> start broker on network: {}", settings.network);
|
||||
start_broker(rx, status_tx, error_tx.clone(),CLIENT_ID, settings).await;
|
||||
start_broker(rx, status_tx, error_tx.clone(), CLIENT_ID, settings).await;
|
||||
log::info!("=> wait for connected status");
|
||||
// wait for connection = true
|
||||
let status = status_rx.recv().await.expect("couldnt receive");
|
||||
log::info!("=> connection status: {}", status);
|
||||
// assert_eq!(status, true, "expected connected = true");
|
||||
|
||||
// collect errors
|
||||
tokio::spawn(async move {
|
||||
use std::io::Write;
|
||||
let err_log_path = env::var("BROKER_ERROR_LOG_PATH").unwrap_or(DEFAULT_ERROR_LOG_PATH.to_string());
|
||||
if let Ok(mut file) = std::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 {
|
||||
if let Err(e) = file.write_all(&err_msg) {
|
||||
log::warn!("failed to write error to log {:?}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if let Ok(btc_url) = env::var("BITCOIND_RPC_URL") {
|
||||
let signer_port = MqttSignerPort::new(tx.clone());
|
||||
let frontend = Frontend::new(
|
||||
|
||||
Reference in New Issue
Block a user