()
| 165 | } |
| 166 | |
| 167 | pub fn get_runtime_logging_info() -> RuntimeLoggingInfo { |
| 168 | let fallback_dir = resolve_logs_root(); |
| 169 | let session_dir = session_log_dir().unwrap_or(fallback_dir); |
| 170 | |
| 171 | RuntimeLoggingInfo { |
| 172 | effective_level: level_to_str(current_runtime_log_level()).to_string(), |
| 173 | session_log_dir: session_dir.to_string_lossy().to_string(), |
| 174 | app_log_path: session_dir.join("app.log").to_string_lossy().to_string(), |
| 175 | ai_log_path: session_dir.join("ai.log").to_string_lossy().to_string(), |
| 176 | flashgrep_log_path: session_dir |
| 177 | .join("flashgrep.log") |
| 178 | .to_string_lossy() |
| 179 | .to_string(), |
| 180 | webview_log_path: session_dir |
| 181 | .join("webview.log") |
| 182 | .to_string_lossy() |
| 183 | .to_string(), |
| 184 | previous_unexpected_exit: crate::crash_diagnostics::previous_unexpected_exit(), |
| 185 | } |
| 186 | } |
| 187 | |
| 188 | fn is_flashgrep_target(target: &str) -> bool { |
| 189 | target.starts_with(FLASHGREP_LOG_TARGET_PREFIX) |
no test coverage detected