11use std:: env;
22use std:: net:: SocketAddr ;
33use std:: path:: PathBuf ;
4+ use std:: str:: FromStr ;
45use std:: sync:: Arc ;
56
67use anyhow:: { bail, Context as _, Result } ;
@@ -10,7 +11,7 @@ use hyper::client::HttpConnector;
1011use libsql_server:: auth:: { parse_http_basic_auth_arg, parse_jwt_keys, user_auth_strategies, Auth } ;
1112use tokio:: sync:: Notify ;
1213use tokio:: time:: Duration ;
13- use tracing_subscriber:: prelude:: * ;
14+ use tracing_subscriber:: { prelude:: * , EnvFilter } ;
1415use tracing_subscriber:: util:: SubscriberInitExt ;
1516use tracing_subscriber:: Layer ;
1617
@@ -641,7 +642,7 @@ fn make_meta_store_config(config: &Cli) -> anyhow::Result<MetaStoreConfig> {
641642 } )
642643}
643644
644- async fn build_server ( config : & Cli ) -> anyhow:: Result < Server > {
645+ async fn build_server ( config : & Cli , set_log_level : impl Fn ( & str ) -> anyhow :: Result < ( ) > + Send + ' static ) -> anyhow:: Result < Server > {
645646 let db_config = make_db_config ( config) ?;
646647 let user_api_config = make_user_api_config ( config) . await ?;
647648 let admin_api_config = make_admin_api_config ( config) . await ?;
@@ -709,6 +710,7 @@ async fn build_server(config: &Cli) -> anyhow::Result<Server> {
709710 should_sync_from_storage : config. sync_from_storage ,
710711 force_load_wals : config. force_load_wals ,
711712 sync_conccurency : config. sync_conccurency ,
713+ set_log_level : Some ( Box :: new ( set_log_level) ) ,
712714 } )
713715}
714716
@@ -748,16 +750,23 @@ async fn main() -> Result<()> {
748750 #[ cfg( feature = "debug-tools" ) ]
749751 enable_libsql_logging ( ) ;
750752
753+ let ( filter, reload_handle) = tracing_subscriber:: reload:: Layer :: new ( tracing_subscriber:: EnvFilter :: from_default_env ( ) ) ;
754+ let set_log_level = move |s : & str | -> anyhow:: Result < ( ) > {
755+ let filter = EnvFilter :: from_str ( s) ?;
756+ reload_handle. reload ( filter) ?;
757+ Ok ( ( ) )
758+ } ;
759+
751760 registry
752761 . with (
753762 tracing_subscriber:: fmt:: layer ( )
754763 . with_ansi ( false )
755- . with_filter ( tracing_subscriber :: EnvFilter :: from_default_env ( ) ) ,
764+ . with_filter ( filter ) ,
756765 )
757766 . init ( ) ;
758767
759768 args. print_welcome_message ( ) ;
760- let server = build_server ( & args) . await ?;
769+ let server = build_server ( & args, set_log_level ) . await ?;
761770 server. start ( ) . await ?;
762771
763772 Ok ( ( ) )
0 commit comments