aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com>2023-03-21 09:31:36 +0100
committerGitHub <noreply@github.com>2023-03-21 08:31:36 +0000
commit36fdc302bef162d213d6a026c99614673b24a069 (patch)
treecadbdda49542ddf5234040206676a186ebe9b440
parent25791906cc8c81368af5718f8ec6ee8b4f428b31 (diff)
downloadFlightCore-36fdc302bef162d213d6a026c99614673b24a069.tar.gz
FlightCore-36fdc302bef162d213d6a026c99614673b24a069.zip
feat: Proper logging (#223)
* feat: Initial setup of sentry logging * refactor: Replace some println with log call Not replacing all cause too large diff
-rw-r--r--src-tauri/Cargo.lock73
-rw-r--r--src-tauri/Cargo.toml5
-rw-r--r--src-tauri/src/github/release_notes.rs6
-rw-r--r--src-tauri/src/lib.rs13
-rw-r--r--src-tauri/src/main.rs15
-rw-r--r--src-tauri/src/northstar/mod.rs5
6 files changed, 97 insertions, 20 deletions
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index 70e50a8e..954b80a8 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -96,9 +96,12 @@ dependencies = [
"game-scanner",
"json5",
"libthermite",
+ "log",
+ "pretty_env_logger",
"regex",
"reqwest",
"sentry",
+ "sentry-log",
"serde",
"serde_json",
"steamlocate",
@@ -164,6 +167,17 @@ dependencies = [
]
[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -879,6 +893,19 @@ dependencies = [
]
[[package]]
+name = "env_logger"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
name = "errno"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1455,6 +1482,15 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
@@ -1543,6 +1579,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
name = "hyper"
version = "0.14.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2208,7 +2253,7 @@ version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
dependencies = [
- "hermit-abi",
+ "hermit-abi 0.2.6",
"libc",
]
@@ -2673,6 +2718,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
[[package]]
+name = "pretty_env_logger"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
+dependencies = [
+ "env_logger",
+ "log",
+]
+
+[[package]]
name = "proc-macro-crate"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2775,6 +2830,12 @@ dependencies = [
]
[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
name = "quick-xml"
version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3303,6 +3364,16 @@ dependencies = [
]
[[package]]
+name = "sentry-log"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa3a3f4477e77541c26eb84d0e355729dfa35c74c682eb8678f146db5126013"
+dependencies = [
+ "log",
+ "sentry-core",
+]
+
+[[package]]
name = "sentry-panic"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 0e972064..2d803e7e 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -25,7 +25,9 @@ serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
tauri = { version = "1.2", features = ["api-all", "updater"] }
tokio = { version = "1", features = ["full"] }
+# Sentry (crash) logging
sentry = "0.30"
+sentry-log = "0.30.0"
# Find steam games
steamlocate = "1.0.2"
# Error messages
@@ -54,6 +56,9 @@ chrono = "0.4.23"
ts-rs = "6.1"
# const formatting
const_format = "0.2.30"
+# Logging libraries
+pretty_env_logger = "0.4.0"
+log = "0.4.17"
# Extracting zip files easily
zip-extract = "0.1.2"
diff --git a/src-tauri/src/github/release_notes.rs b/src-tauri/src/github/release_notes.rs
index b59358ec..e8e5c1fa 100644
--- a/src-tauri/src/github/release_notes.rs
+++ b/src-tauri/src/github/release_notes.rs
@@ -20,7 +20,7 @@ pub struct FlightCoreVersion {
// Fetches repo release API and returns response as string
pub async fn fetch_github_releases_api(url: &str) -> Result<String, String> {
- println!("Fetching releases notes from GitHub API");
+ log::info!("Fetching releases notes from GitHub API");
let client = reqwest::Client::new();
let res = client
@@ -40,13 +40,13 @@ pub async fn fetch_github_releases_api(url: &str) -> Result<String, String> {
#[tauri::command]
pub async fn get_newest_flightcore_version() -> Result<FlightCoreVersion, String> {
// Get newest version number from GitHub API
- println!("Checking GitHub API");
+ log::info!("Checking GitHub API");
let url = "https://api.github.com/repos/R2NorthstarTools/FlightCore/releases/latest";
let res = fetch_github_releases_api(url).await?;
let flightcore_version: FlightCoreVersion =
serde_json::from_str(&res).expect("JSON was not well-formatted");
- println!("Done checking GitHub API");
+ log::info!("Done checking GitHub API");
Ok(flightcore_version)
}
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index 050b4238..2e0a0250 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -1,7 +1,6 @@
use std::env;
use anyhow::{anyhow, Context, Result};
-use sentry::{add_breadcrumb, Breadcrumb, Level};
mod northstar;
@@ -61,7 +60,7 @@ pub fn check_mod_version_number(path_to_mod_folder: String) -> Result<String, an
None => return Err(anyhow!("No version number found")),
};
- println!("{}", mod_version_number);
+ log::info!("{}", mod_version_number);
Ok(mod_version_number.to_string())
}
@@ -132,7 +131,7 @@ pub fn find_game_install_location() -> Result<GameInstall, String> {
pub fn check_is_valid_game_path(game_install_path: &str) -> Result<(), String> {
let path_to_titanfall2_exe = format!("{}/Titanfall2.exe", game_install_path);
let is_correct_game_path = std::path::Path::new(&path_to_titanfall2_exe).exists();
- println!("Titanfall2.exe exists in path? {}", is_correct_game_path);
+ log::info!("Titanfall2.exe exists in path? {}", is_correct_game_path);
// Exit early if wrong game path
if !is_correct_game_path {
@@ -231,13 +230,7 @@ pub async fn install_northstar(
.ok_or_else(|| panic!("Couldn't find Northstar on thunderstore???"))
.unwrap();
- // Breadcrumb for sentry to debug crash
- add_breadcrumb(Breadcrumb {
- // category: Some("auth".into()),
- message: Some(format!("Install path \"{}\"", game_path)),
- level: Level::Info,
- ..Default::default()
- });
+ log::info!("Install path \"{}\"", game_path);
match do_install(
nmod.versions.get(&nmod.latest).unwrap(),
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index 50e439c8..0733d5a0 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -45,6 +45,14 @@ use tokio::time::sleep;
struct Counter(Arc<Mutex<i32>>);
fn main() {
+ // Setup logger
+ let mut log_builder = pretty_env_logger::formatted_builder();
+ log_builder.parse_filters("info");
+ let logger = sentry_log::SentryLogger::with_dest(log_builder.build());
+
+ log::set_boxed_logger(Box::new(logger)).unwrap();
+ log::set_max_level(log::LevelFilter::Info);
+
// Only enable Sentry crash logs on release
#[cfg(not(debug_assertions))]
let _guard = sentry::init((
@@ -222,10 +230,10 @@ async fn check_is_northstar_outdated(
let version_number = convert_release_candidate_number(version_number);
if version_number != nmod.latest {
- println!("Installed Northstar version outdated");
+ log::info!("Installed Northstar version outdated");
Ok(true)
} else {
- println!("Installed Northstar version up-to-date");
+ log::info!("Installed Northstar version up-to-date");
Ok(false)
}
}
@@ -353,7 +361,8 @@ async fn get_server_player_count() -> Result<(i32, usize), String> {
// Sum up player count
let total_player_count: i32 = ns_servers.iter().map(|server| server.player_count).sum();
- dbg!((total_player_count, server_count));
+ log::info!("total_player_count: {}", total_player_count);
+ log::info!("server_count: {}", server_count);
Ok((total_player_count, server_count))
}
diff --git a/src-tauri/src/northstar/mod.rs b/src-tauri/src/northstar/mod.rs
index a043632c..f3f8cde3 100644
--- a/src-tauri/src/northstar/mod.rs
+++ b/src-tauri/src/northstar/mod.rs
@@ -6,8 +6,7 @@ use anyhow::anyhow;
/// Returns the current Northstar version number as a string
pub fn get_northstar_version_number(game_path: String) -> Result<String, anyhow::Error> {
- println!("{}", game_path);
- // println!("{:?}", install_type);
+ log::info!("{}", game_path);
// TODO:
// Check if NorthstarLauncher.exe exists and check its version number
@@ -33,7 +32,7 @@ pub fn get_northstar_version_number(game_path: String) -> Result<String, anyhow:
return Err(anyhow!("Found version number mismatch"));
}
}
- println!("All mods same version");
+ log::info!("All mods same version");
Ok(initial_version_number)
}