Skip to main content

chrome_for_testing/
chromedriver.rs

1use serde::{Deserialize, Serialize};
2use std::fmt::{Display, Formatter};
3
4/// The chromedriver binary can be passed one of these log-levels.
5///
6/// Defaults to `Info`. This is enough to get the "started on port ..." line on stdout.
7///
8/// For example, if launching chromedriver with std/tokio `Process`, do this:
9/// ```no_run
10/// let mut command = std::process::Command::new("chromedriver");
11/// let loglevel = chrome_for_testing::chromedriver::LogLevel::All;
12/// command.arg(format!("--log-level={loglevel}"));
13/// ```
14#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
15pub enum LogLevel {
16    /// Log all messages (most verbose).
17    All,
18
19    /// Log debug messages and above.
20    Debug,
21
22    /// Log info messages and above (default level).
23    #[default]
24    Info,
25
26    /// Log warning messages and above.
27    Warning,
28
29    /// Log only severe/error messages.
30    Severe,
31
32    /// Disable all logging.
33    Off,
34}
35
36impl Display for LogLevel {
37    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
38        f.write_str(match self {
39            LogLevel::All => "ALL",
40            LogLevel::Debug => "DEBUG",
41            LogLevel::Info => "INFO",
42            LogLevel::Warning => "WARNING",
43            LogLevel::Severe => "SEVERE",
44            LogLevel::Off => "OFF",
45        })
46    }
47}