reimplemented+simplified switchable server logging

don't know how well it interacts with `log` (or upcoming tracing), so this may be temporary and/or incomplete. But it works for my application code at the least (as opposed to library code)
This commit is contained in:
Noah Santschi-Cooney 2022-12-01 01:25:45 +00:00
parent e7221304da
commit a797d5b378
No known key found for this signature in database
GPG key ID: 3B22282472C8AE48
7 changed files with 54 additions and 44 deletions

View file

@ -1,10 +0,0 @@
use std::str::FromStr;
use logging::{Level, error};
pub fn handle_log_level_change<F: FnOnce(Level)>(log_level: String, callback: F) {
match Level::from_str(log_level.as_str()) {
Ok(level) => callback(level),
Err(_) => error!("got unexpected log level from config"; "level" => log_level),
};
}

View file

@ -3,12 +3,12 @@ use logging::{logger, FutureExt};
use server::Server;
use tower_lsp::LspService;
mod configuration;
mod navigation;
#[tokio::main]
async fn main() {
let _guard = logging::set_level(logging::Level::Debug);
// start with debug log level, and then adjust once we get the configuration from the client.
logging::set_level(logging::Level::Debug);
let stdin = tokio::io::stdin();
let stdout = tokio::io::stdout();