Skip to content

Commit 0af99f8

Browse files
authoredApr 5, 2024
Fix #2990 (#2991)
* Lower level * Move calls * Add thread to log * Split wait * Flip * Refactor log message formatting in main.rs * Update interval to 60 seconds in main.rs
1 parent 492313b commit 0af99f8

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed
 

‎src-tauri/src/backend.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,18 @@ use crate::{
1010

1111
pub const BACKEND_HOST: &str = "127.0.0.1";
1212

13-
pub async fn setup_backend() {
14-
info!("Setting up backend server..");
15-
13+
pub async fn keep_backend_alive() {
1614
// Get settings
1715
let settings: Settings = get_settings();
1816

1917
let base_url = format!("http://{}:{}", BACKEND_HOST, settings.api.port.to_string());
2018

2119
// Check if the backend server is running
2220
let backend_active = check_backend(base_url.clone()).await;
23-
if !backend_active.is_ok() {
21+
if backend_active.is_err() {
2422
// Start the backend server
2523
let backend_start = start_backend().await;
26-
if !backend_start.is_ok() {
24+
if backend_start.is_err() {
2725
info!("Failed to start the backend server");
2826
std::process::exit(1);
2927
}

‎src-tauri/src/main.rs

+23-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ mod shared;
99
mod websocket;
1010

1111
use fern::colors::{Color, ColoredLevelConfig};
12-
use log::{info, LevelFilter};
12+
use log::{debug, info, LevelFilter};
1313
use std::sync::atomic::{AtomicBool, Ordering};
1414
use std::sync::Arc;
1515
use std::thread;
@@ -18,7 +18,7 @@ use tokio::runtime::Runtime;
1818
use tokio::time::interval;
1919

2020
use crate::{
21-
backend::{setup_backend, stop_backend},
21+
backend::{keep_backend_alive, stop_backend},
2222
gui::setup_gui,
2323
resources::start_application,
2424
shared::get_data_path,
@@ -85,17 +85,23 @@ async fn run() {
8585
info!("Backend is disabled");
8686
} else {
8787
// Setup the backend server
88+
info!("Setting up backend server..");
89+
8890
let _handle = thread::spawn(move || {
8991
let rt = Runtime::new().unwrap();
9092
rt.block_on(async {
93+
// Keep the backend server alive
94+
keep_backend_alive().await;
9195
// Check backend server is running every 60 seconds
9296
let mut interval: tokio::time::Interval = interval(Duration::from_secs(60));
97+
interval.tick().await;
9398
loop {
94-
// Setup the backend server
95-
setup_backend().await;
96-
9799
info!("Waiting for 60 seconds before checking the backend server again");
98100
interval.tick().await;
101+
debug!("Checking backend server..");
102+
103+
// Keep the backend server alive
104+
keep_backend_alive().await;
99105
}
100106
});
101107
});
@@ -127,9 +133,14 @@ fn setup_logger() -> Result<(), fern::InitError> {
127133
let stdout_config = fern::Dispatch::new()
128134
.format(move |out, message, record| {
129135
out.finish(format_args!(
130-
"[{} {} {}] {}",
136+
"{} {} ({}) [{}] {}",
131137
humantime::format_rfc3339(std::time::SystemTime::now()),
132138
colors.color(record.level()),
139+
std::thread::current().name().unwrap_or(
140+
&format!("{:?}", std::thread::current().id())
141+
.replace("ThreadId(", "")
142+
.replace(")", "")
143+
),
133144
record.target(),
134145
message
135146
))
@@ -139,9 +150,14 @@ fn setup_logger() -> Result<(), fern::InitError> {
139150
let file_config = fern::Dispatch::new()
140151
.format(move |out, message, record| {
141152
out.finish(format_args!(
142-
"[{} {} {}] {}",
153+
"[{} {} {} {}] {}",
143154
humantime::format_rfc3339(std::time::SystemTime::now()),
144155
record.level(),
156+
std::thread::current().name().unwrap_or(
157+
&format!("{:?}", std::thread::current().id())
158+
.replace("ThreadId(", "")
159+
.replace(")", "")
160+
),
145161
record.target(),
146162
message
147163
))

‎src-tauri/src/shared.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
use log::info;
1+
use log::debug;
22
use platform_dirs::AppDirs;
33

44
pub fn get_data_path() -> String {
55
// Get data path from {localappdata}\timmo001\systembridge
66
let app_dirs = AppDirs::new(Some("timmo001"), true).unwrap();
77
let data_path = app_dirs.data_dir.to_str().unwrap().to_string();
8-
info!("Data path: {}", data_path);
8+
debug!("Data path: {}", data_path);
99

1010
let path = format!("{}/systembridge", data_path);
1111

0 commit comments

Comments
 (0)