| 180 | } |
| 181 | |
| 182 | fn logger(&self, message: String, level: Level) { |
| 183 | match self.output { |
| 184 | OutputType::Json => { |
| 185 | let trace = level <= Level::Trace && self.trace; |
| 186 | let debug = level <= Level::Debug && self.debug; |
| 187 | let other = level <= Level::Info; |
| 188 | if trace || debug || other { |
| 189 | self.json |
| 190 | .borrow_mut() |
| 191 | .logs |
| 192 | .push(self.create_json_log(message.to_string(), level)); |
| 193 | } |
| 194 | if level == Level::Info || level <= Level::Error { |
| 195 | if message.starts_with(DRIVER_PATH) { |
| 196 | self.json.borrow_mut().result.driver_path = |
| 197 | self.clean_driver_path(&message); |
| 198 | } else if message.starts_with(BROWSER_PATH) { |
| 199 | self.json.borrow_mut().result.browser_path = |
| 200 | self.clean_browser_path(&message); |
| 201 | } else { |
| 202 | self.json.borrow_mut().result.message = message; |
| 203 | } |
| 204 | } |
| 205 | } |
| 206 | OutputType::Shell => { |
| 207 | if level == Level::Info { |
| 208 | println!("{}", message); |
| 209 | } else if level == Level::Error { |
| 210 | eprintln!("{}", message); |
| 211 | } |
| 212 | } |
| 213 | _ => { |
| 214 | if self.output == OutputType::Mixed && level == Level::Info || level <= Level::Error |
| 215 | { |
| 216 | if message.starts_with(DRIVER_PATH) { |
| 217 | self.minimal_json.borrow_mut().driver_path = |
| 218 | self.clean_driver_path(&message); |
| 219 | } else if message.starts_with(BROWSER_PATH) { |
| 220 | self.minimal_json.borrow_mut().browser_path = |
| 221 | self.clean_browser_path(&message); |
| 222 | } else { |
| 223 | self.minimal_json.borrow_mut().error = message.clone(); |
| 224 | } |
| 225 | } |
| 226 | log::log!(level, "{}", message); |
| 227 | } |
| 228 | } |
| 229 | } |
| 230 | |
| 231 | fn clean_driver_path(&self, message: &str) -> String { |
| 232 | message.replace(DRIVER_PATH, "") |