@@ -57,6 +57,7 @@ use serde::Serialize;
5757use serde_json:: { json, Value } ;
5858use std:: borrow:: Cow ;
5959use std:: convert:: TryFrom ;
60+ use std:: fmt:: Write as _;
6061use std:: io:: Write ;
6162use std:: path:: Path ;
6263use 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