webserver_base/
frontend_error_logger.rs1use 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}