webserver_base/
frontend_error_logger.rs

1use serde::{Deserialize, Serialize};
2use tracing::{error, instrument};
3
4#[derive(Debug, Serialize, Deserialize)]
5#[serde(deny_unknown_fields, rename_all = "camelCase")]
6pub struct FrontendErrorPayload {
7    source_file: Option<String>,
8    line_number: Option<i32>,
9    column_number: Option<i32>,
10
11    message: Option<String>,
12    stack_trace: Option<String>,
13    current_url: Option<String>,
14    timestamp: Option<String>,
15}
16
17impl FrontendErrorPayload {
18    #[instrument(skip_all)]
19    pub fn log(&self) {
20        error!("{}", serde_json::to_string_pretty(self).unwrap());
21    }
22}