(provider: &dyn RunEnvironmentProvider)
| 13 | |
| 14 | impl Logger { |
| 15 | pub fn new(provider: &dyn RunEnvironmentProvider) -> Result<Self> { |
| 16 | let provider_logger = provider.get_logger(); |
| 17 | let log_file = NamedTempFile::new().context("Failed to create log file")?; |
| 18 | let log_file_path = log_file.path().to_path_buf(); |
| 19 | |
| 20 | let file_logger_config = simplelog::ConfigBuilder::new() |
| 21 | // Groups are not logged to the file |
| 22 | .add_filter_ignore_str(GROUP_TARGET) |
| 23 | .add_filter_ignore_str(OPENED_GROUP_TARGET) |
| 24 | .build(); |
| 25 | let file_logger = WriteLogger::new(LevelFilter::Trace, file_logger_config, log_file); |
| 26 | |
| 27 | if let Err(_e) = CombinedLogger::init(vec![provider_logger, file_logger]) { |
| 28 | // In tests, test_log already initializes a logger, so we ignore the error |
| 29 | #[cfg(not(test))] |
| 30 | return Err(anyhow::Error::from(_e).context("Failed to init logger")); |
| 31 | } |
| 32 | |
| 33 | Ok(Self { log_file_path }) |
| 34 | } |
| 35 | |
| 36 | pub fn persist_log_to_profile_folder(&self, profile_folder: &Path) -> Result<()> { |
| 37 | let dest_log_file_path = profile_folder.join("runner.log"); |
nothing calls this directly
no test coverage detected