mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-16 05:45:33 +00:00
Bug 1444431 - Filter logs from familiar logging targets. r=jgraham
geckodriver uses log 0.4, but it depends on a version of hyper that uses log 0.3. Previously this meant that geckodriver's logger could only see messages from crates using log 0.4, and had no access to messages from hyper or other crates using log 0.3. However, log 0.3.9 added interoperability so that programs built with a mix of log 0.3 and log 0.4 can again display messages from all crates. This patches geckodriver::logging to contain a whitelist of logged targets we care about. Currently this list includes geckodriver, mozprofile, mozrunner, mozversion, and webdriver. This will revert us to the behaviour prior to upgrading hyper to use log 0.3.9, and would be similar to the old implementation we had for filtering logs we had when geckodriver used slog. Thanks-to: Matt Brubeck <mbrubeck@mozilla.com> MozReview-Commit-ID: 6Xj0k6VD1dQ --HG-- extra : rebase_source : 7a5aee1642b94516eedc1ca25b722e2868d0983b
This commit is contained in:
parent
34114150a6
commit
af806c4bab
@ -33,15 +33,20 @@ use std::fmt;
|
||||
use std::io;
|
||||
use std::io::Write;
|
||||
use std::str;
|
||||
use std::sync::atomic::{ATOMIC_USIZE_INIT, AtomicUsize, Ordering};
|
||||
use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
|
||||
|
||||
static MAX_LOG_LEVEL: AtomicUsize = ATOMIC_USIZE_INIT;
|
||||
const LOGGED_TARGETS: &'static [&'static str] = &[
|
||||
"geckodriver",
|
||||
"mozprofile",
|
||||
"mozrunner",
|
||||
"mozversion",
|
||||
"webdriver",
|
||||
];
|
||||
|
||||
/// Logger levels from [Log.jsm].
|
||||
///
|
||||
/// [Log.jsm]:
|
||||
/// https://developer.mozilla.org/en/docs/Mozilla/JavaScript_code_modules/Log.
|
||||
/// jsm
|
||||
/// [Log.jsm]: https://developer.mozilla.org/en/docs/Mozilla/JavaScript_code_modules/Log.jsm
|
||||
#[repr(usize)]
|
||||
#[derive(Clone, Copy, Eq, Debug, Hash, PartialEq)]
|
||||
pub enum Level {
|
||||
@ -134,7 +139,8 @@ struct Logger;
|
||||
|
||||
impl log::Log for Logger {
|
||||
fn enabled(&self, meta: &log::Metadata) -> bool {
|
||||
meta.level() <= log::max_level()
|
||||
LOGGED_TARGETS.iter().any(|&x| meta.target().starts_with(x))
|
||||
&& meta.level() <= log::max_level()
|
||||
}
|
||||
|
||||
fn log(&self, record: &log::Record) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user