Skip to content

Commit 3808380

Browse files
committed
Refactor log component to use compact error handling
1 parent 398476f commit 3808380

File tree

1 file changed

+8
-26
lines changed

1 file changed

+8
-26
lines changed

src/render.rs

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ use serde::Serialize;
5757
use serde_json::{json, Value};
5858
use std::borrow::Cow;
5959
use std::convert::TryFrom;
60+
use std::fmt::Write as _;
6061
use std::io::Write;
6162
use std::path::Path;
6263
use std::str::FromStr;
@@ -910,35 +911,16 @@ fn handle_log_component(
910911
current_statement: Option<usize>,
911912
data: &JsonValue,
912913
) -> anyhow::Result<()> {
913-
let mut log_level = log::Level::Info;
914-
if let Some(priority) = get_object_str(data, "priority") {
915-
if let Ok(level) = log::Level::from_str(priority) {
916-
log_level = level;
917-
}
918-
}
914+
let priority = get_object_str(data, "priority").unwrap_or("info");
915+
let log_level = log::Level::from_str(priority).with_context(|| "Invalid log priority value")?;
919916

920-
let current_statement_string = if let Some(option) = current_statement {
921-
&format!("statement {option}")
922-
} else {
923-
"header"
924-
};
925-
926-
let target = format!(
927-
"sqlpage::log from file \"{}\" in {}",
928-
source_path.display(),
929-
current_statement_string
930-
);
931-
932-
if let Some(message) = get_object_str(data, "message") {
933-
log::log!(target: &target, log_level, "{message}");
934-
} else {
935-
return Err(anyhow::anyhow!(
936-
"message undefined for log in \"{}\" in {}",
937-
source_path.display(),
938-
current_statement_string
939-
));
917+
let mut target = format!("sqlpage::log from \"{}\"", source_path.display());
918+
if let Some(current_statement) = current_statement {
919+
write!(&mut target, " statement {current_statement}")?;
940920
}
941921

922+
let message = get_object_str(data, "message").context("log: missing property 'message'")?;
923+
log::log!(target: &target, log_level, "{message}");
942924
Ok(())
943925
}
944926

0 commit comments

Comments
 (0)