diff options
author | Astraea Quinn S <52372765+PartiallyUntyped@users.noreply.github.com> | 2025-05-08 18:10:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-08 16:10:30 +0000 |
commit | 8473946d11cc183f4065dabf25aba60fc1c4038c (patch) | |
tree | 90ef48809e585f70f0f5d7f9332f49e75d1a9870 | |
parent | f58b0c6ad4f7c06088564434f2a4adc5b33206ec (diff) | |
download | servo-8473946d11cc183f4065dabf25aba60fc1c4038c.tar.gz servo-8473946d11cc183f4065dabf25aba60fc1c4038c.zip |
[OH] allow setting `log_filter` via `prefs.json` (#36916)
This PR allows us to set the `log_filter` via `prefs.json` as well as
commandline arguments.
Priority goes commandline > prefs.json > compile-time default.
Testing: I compiled and run servo on an OH device, and then checked the
logs:
```
hdc hilog | tee log | rg 'Set log_filter to'
```
```
05-08 15:25:59.389 55824 55993 D A00000/org.servo.servo/servoshell::prefs: Set log_filter to: Some("debug,geometry=trace")
```
Signed-off-by: Astraea Quinn Skoutelli <astraea.quinn.skoutelli@huawei.com>
-rw-r--r-- | components/config/prefs.rs | 3 | ||||
-rw-r--r-- | ports/servoshell/prefs.rs | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/components/config/prefs.rs b/components/config/prefs.rs index 96c40c91360..a9ec112e3eb 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -236,6 +236,8 @@ pub struct Preferences { /// The user-agent to use for Servo. This can also be set via [`UserAgentPlatform`] in /// order to set the value to the default value for the given platform. pub user_agent: String, + + pub log_filter: String, } impl Preferences { @@ -398,6 +400,7 @@ impl Preferences { threadpools_webrender_workers_max: 4, webgl_testing_context_creation_error: false, user_agent: String::new(), + log_filter: String::new(), } } } diff --git a/ports/servoshell/prefs.rs b/ports/servoshell/prefs.rs index a2efe3bab3b..a3ebda231d0 100644 --- a/ports/servoshell/prefs.rs +++ b/ports/servoshell/prefs.rs @@ -428,7 +428,11 @@ pub(crate) fn parse_command_line_arguments(args: Vec<String>) -> ArgumentParsing #[cfg(target_env = "ohos")] let log_filter = { let filters = opt_match.opt_strs("log-filter").join(","); - (!filters.is_empty()).then_some(filters) + let log_filter = (!filters.is_empty()).then_some(filters).or_else(|| { + (!preferences.log_filter.is_empty()).then_some(preferences.log_filter.clone()) + }); + log::debug!("Set log_filter to: {:?}", log_filter); + log_filter }; let mut debug_options = DebugOptions::default(); |