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}