diff --git a/Cargo.lock b/Cargo.lock index 6561d0460..38c02a43e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3615,6 +3615,7 @@ dependencies = [ "serde", "serde-wasm-bindgen", "thiserror", + "tracing", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -3626,7 +3627,7 @@ name = "ruffle_web_common" version = "0.1.0" dependencies = [ "js-sys", - "log", + "tracing", "wasm-bindgen", "web-sys", ] diff --git a/web/Cargo.toml b/web/Cargo.toml index dbacd0422..83713848d 100644 --- a/web/Cargo.toml +++ b/web/Cargo.toml @@ -31,6 +31,7 @@ console_log = { version = "0.2", optional = true } generational-arena = "0.2.8" js-sys = "0.3.60" log = { version = "0.4", features = ["serde"] } +tracing = { version = "0.1.37", features = ["log"] } ruffle_render_canvas = { path = "../render/canvas", optional = true } ruffle_web_common = { path = "common" } ruffle_render_webgl = { path = "../render/webgl", optional = true } diff --git a/web/common/Cargo.toml b/web/common/Cargo.toml index 19ca5f7fb..e944f6e0d 100644 --- a/web/common/Cargo.toml +++ b/web/common/Cargo.toml @@ -7,7 +7,7 @@ license = "MIT OR Apache-2.0" [dependencies] js-sys = "0.3.60" -log = "0.4" +tracing = "0.1.37" wasm-bindgen = "=0.2.83" [dependencies.web-sys] diff --git a/web/common/src/lib.rs b/web/common/src/lib.rs index c7c294ddc..2fd807d5d 100644 --- a/web/common/src/lib.rs +++ b/web/common/src/lib.rs @@ -30,7 +30,7 @@ impl JsResult for Result { #[inline] fn warn_on_error(&self) { if let Err(value) = self { - log::warn!("Unexpected JavaScript error: {:?}", value); + tracing::warn!("Unexpected JavaScript error: {:?}", value); } } diff --git a/web/src/lib.rs b/web/src/lib.rs index 1bb8e954a..0c46090b6 100644 --- a/web/src/lib.rs +++ b/web/src/lib.rs @@ -470,7 +470,7 @@ impl Ruffle { if let Ok(audio) = audio::WebAudioBackend::new() { builder = builder.with_audio(audio); } else { - log::error!("Unable to create audio backend. No audio will be played."); + tracing::error!("Unable to create audio backend. No audio will be played."); } builder = builder.with_navigator(navigator::WebNavigatorBackend::new( allow_script_access, @@ -483,7 +483,7 @@ impl Ruffle { builder = builder.with_storage(storage::LocalStorageBackend::new(s)); } err => { - log::warn!("Unable to use localStorage: {:?}\nData will not save.", err); + tracing::warn!("Unable to use localStorage: {:?}\nData will not save.", err); } }; @@ -830,7 +830,7 @@ impl Ruffle { .map_err(RuffleInstanceError::from) .and_then(std::convert::identity); if let Err(e) = &ret { - log::error!("{}", e); + tracing::error!("{}", e); } ret } @@ -853,7 +853,7 @@ impl Ruffle { .map_err(RuffleInstanceError::from) .and_then(std::convert::identity); if let Err(e) = &ret { - log::error!("{}", e); + tracing::error!("{}", e); } ret } @@ -882,7 +882,7 @@ impl Ruffle { .map_err(RuffleInstanceError::from) .and_then(std::convert::identity); if let Err(e) = &ret { - log::error!("{}", e); + tracing::error!("{}", e); } ret } @@ -911,7 +911,7 @@ impl Ruffle { .map_err(RuffleInstanceError::from) .and_then(std::convert::identity); if let Err(e) = &ret { - log::error!("{}", e); + tracing::error!("{}", e); } ret } @@ -1027,7 +1027,7 @@ impl RuffleInstance { .map(|core| f(&core)) .map_err(|_| RuffleInstanceError::TryLockError); if let Err(e) = &ret { - log::error!("{}", e); + tracing::error!("{}", e); } ret } @@ -1042,7 +1042,7 @@ impl RuffleInstance { .map(|mut core| f(&mut core)) .map_err(|_| RuffleInstanceError::TryLockError); if let Err(e) = &ret { - log::error!("{}", e); + tracing::error!("{}", e); } ret } @@ -1227,7 +1227,7 @@ async fn create_renderer( .and_then(|window| js_sys::Reflect::has(&window.navigator(), &JsValue::from_str("gpu"))) .unwrap_or_default() { - log::info!("Creating wgpu webgpu renderer..."); + tracing::info!("Creating wgpu webgpu renderer..."); let canvas: HtmlCanvasElement = document .create_element("canvas") .into_js_result()? @@ -1235,7 +1235,7 @@ async fn create_renderer( .map_err(|_| "Expected HtmlCanvasElement")?; let sample_count = if ruffle_web_common::is_mobile_or_tablet() { - log::info!("Running on a mobile device; defaulting to no MSAA"); + tracing::info!("Running on a mobile device; defaulting to no MSAA"); 1 } else { 4 @@ -1247,13 +1247,13 @@ async fn create_renderer( Ok(renderer) => { return Ok((builder.with_renderer(renderer), canvas)); } - Err(error) => log::error!("Error creating wgpu webgpu renderer: {}", error), + Err(error) => tracing::error!("Error creating wgpu webgpu renderer: {}", error), } } } #[cfg(all(feature = "wgpu-webgl", target_family = "wasm"))] { - log::info!("Creating wgpu webgl renderer..."); + tracing::info!("Creating wgpu webgl renderer..."); let canvas: HtmlCanvasElement = document .create_element("canvas") .into_js_result()? @@ -1261,7 +1261,7 @@ async fn create_renderer( .map_err(|_| "Expected HtmlCanvasElement")?; let sample_count = if ruffle_web_common::is_mobile_or_tablet() { - log::info!("Running on a mobile device; defaulting to no MSAA"); + tracing::info!("Running on a mobile device; defaulting to no MSAA"); 1 } else { 4 @@ -1273,7 +1273,7 @@ async fn create_renderer( Ok(renderer) => { return Ok((builder.with_renderer(renderer), canvas)); } - Err(error) => log::error!("Error creating wgpu webgl renderer: {}", error), + Err(error) => tracing::error!("Error creating wgpu webgl renderer: {}", error), } } @@ -1282,7 +1282,7 @@ async fn create_renderer( // with `getContext`. #[cfg(feature = "webgl")] { - log::info!("Creating WebGL renderer..."); + tracing::info!("Creating WebGL renderer..."); let canvas: HtmlCanvasElement = document .create_element("canvas") .into_js_result()? @@ -1292,13 +1292,13 @@ async fn create_renderer( Ok(renderer) => { return Ok((builder.with_renderer(renderer), canvas)); } - Err(error) => log::error!("Error creating WebGL renderer: {}", error), + Err(error) => tracing::error!("Error creating WebGL renderer: {}", error), } } #[cfg(feature = "canvas")] { - log::info!("Falling back to Canvas renderer..."); + tracing::info!("Falling back to Canvas renderer..."); let canvas: HtmlCanvasElement = document .create_element("canvas") .into_js_result()? @@ -1308,7 +1308,7 @@ async fn create_renderer( Ok(renderer) => { return Ok((builder.with_renderer(renderer), canvas)); } - Err(error) => log::error!("Error creating canvas renderer: {}", error), + Err(error) => tracing::error!("Error creating canvas renderer: {}", error), } } diff --git a/web/src/log_adapter.rs b/web/src/log_adapter.rs index 994222c21..6f461a51e 100644 --- a/web/src/log_adapter.rs +++ b/web/src/log_adapter.rs @@ -16,7 +16,7 @@ impl WebLogBackend { impl LogBackend for WebLogBackend { fn avm_trace(&self, message: &str) { - log::info!(target: "avm_trace", "{}", message); + tracing::info!(target: "avm_trace", "{}", message); if let Some(function) = self.trace_observer.borrow().dyn_ref::() { let _ = function.call1(function, &JsValue::from_str(message)); } diff --git a/web/src/navigator.rs b/web/src/navigator.rs index dfb48457e..27645cb65 100644 --- a/web/src/navigator.rs +++ b/web/src/navigator.rs @@ -55,7 +55,7 @@ impl WebNavigatorBackend { }; if base_url.is_none() { - log::error!("Could not get base URL for base directory inference."); + tracing::error!("Could not get base URL for base directory inference."); } Self { @@ -93,7 +93,7 @@ impl NavigatorBackend for WebNavigatorBackend { // If `allowScriptAccess` is disabled, reject the `javascript:` scheme. if let Ok(url) = Url::parse(&url) { if !self.allow_script_access && url.scheme() == "javascript" { - log::warn!("SWF tried to run a script, but script access is not allowed"); + tracing::warn!("SWF tried to run a script, but script access is not allowed"); return; } } @@ -219,14 +219,14 @@ impl NavigatorBackend for WebNavigatorBackend { fn spawn_future(&mut self, future: OwnedFuture<(), Error>) { spawn_local(async move { if let Err(e) = future.await { - log::error!("Asynchronous error occurred: {}", e); + tracing::error!("Asynchronous error occurred: {}", e); } }) } fn pre_process_url(&self, mut url: Url) -> Url { if self.upgrade_to_https && url.scheme() == "http" && url.set_scheme("https").is_err() { - log::error!("Url::set_scheme failed on: {}", url); + tracing::error!("Url::set_scheme failed on: {}", url); } url } diff --git a/web/src/ui.rs b/web/src/ui.rs index 6cccb0d58..963bdb67f 100644 --- a/web/src/ui.rs +++ b/web/src/ui.rs @@ -58,7 +58,7 @@ impl UiBackend for WebUiBackend { fn set_clipboard_content(&mut self, _content: String) { //TODO: in AVM2 FP9+ this only works when called from a button handler due to sandbox // restrictions - log::warn!("set clipboard not implemented"); + tracing::warn!("set clipboard not implemented"); } fn set_fullscreen(&mut self, is_full: bool) -> Result<(), FullscreenError> {