From b69e17bf3535489dfbc19c97ec71ca2c673dec31 Mon Sep 17 00:00:00 2001 From: Adrian Wielgosik <4729533+adrian17@users.noreply.github.com> Date: Wed, 20 Jan 2021 03:10:35 +0100 Subject: [PATCH] web: Allow customizing log level --- Cargo.lock | 1 + web/Cargo.toml | 2 +- web/packages/core/src/load-options.ts | 18 ++++++++++++++++++ web/packages/demo/www/index.js | 1 + web/src/lib.rs | 6 +++++- 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76e266fdb..4b225782a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2009,6 +2009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcf3805d4480bb5b86070dcfeb9e2cb2ebc148adb753c5cca5f884d1d65a42b2" dependencies = [ "cfg-if 0.1.10", + "serde", ] [[package]] diff --git a/web/Cargo.toml b/web/Cargo.toml index d4d2fda2d..364741f71 100644 --- a/web/Cargo.toml +++ b/web/Cargo.toml @@ -27,7 +27,7 @@ console_log = { version = "0.2", optional = true } fnv = "1.0.7" generational-arena = "0.2.8" js-sys = "0.3.46" -log = "0.4" +log = { version = "0.4", features = ["serde"] } 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/packages/core/src/load-options.ts b/web/packages/core/src/load-options.ts index 853d04da0..7e3692303 100644 --- a/web/packages/core/src/load-options.ts +++ b/web/packages/core/src/load-options.ts @@ -65,6 +65,17 @@ export enum UnmuteOverlay { Hidden = "hidden", } +/** + * Console logging level. + */ +export enum LogLevel { + Error = "error", + Warn = "warn", + Info = "info", + Debug = "debug", + Trace = "trace", +} + /** * Any options used for loading a movie. */ @@ -131,6 +142,13 @@ export interface BaseLoadOptions { * @default true */ warnOnUnsupportedContent?: boolean; + + /** + * Console logging level. + * + * @default LogLevel.Error + */ + logLevel?: LogLevel; } /** diff --git a/web/packages/demo/www/index.js b/web/packages/demo/www/index.js index 8d8686f2e..a5dfd6cfe 100644 --- a/web/packages/demo/www/index.js +++ b/web/packages/demo/www/index.js @@ -25,6 +25,7 @@ const gamesOptGroup = document.getElementById("games-optgroup"); // Default config used by the player. const config = { letterbox: "on", + logLevel: "warn", }; window.addEventListener("DOMContentLoaded", async () => { diff --git a/web/src/lib.rs b/web/src/lib.rs index 4155036ed..e7c5924b5 100644 --- a/web/src/lib.rs +++ b/web/src/lib.rs @@ -128,6 +128,9 @@ pub struct Config { #[serde(rename = "warnOnUnsupportedContent")] warn_on_unsupported_content: bool, + + #[serde(rename = "logLevel")] + log_level: log::Level, } impl Default for Config { @@ -137,6 +140,7 @@ impl Default for Config { letterbox: Default::default(), upgrade_to_https: true, warn_on_unsupported_content: true, + log_level: log::Level::Error, } } } @@ -415,7 +419,7 @@ impl Ruffle { allow_script_access: bool, config: Config, ) -> Result> { - let _ = console_log::init_with_level(log::Level::Trace); + let _ = console_log::init_with_level(config.log_level); let window = web_sys::window().ok_or("Expected window")?; let document = window.document().ok_or("Expected document")?;