Skip to content

Commit 39dfca2

Browse files
committed
Add tracing to main rust-analyzer binary
1 parent 34034e4 commit 39dfca2

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

Cargo.lock

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/hir_ty/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ena = "0.14.0"
1717
log = "0.4.8"
1818
rustc-hash = "1.1.0"
1919
scoped-tls = "1"
20-
chalk-solve = "0.34"
20+
chalk-solve = { version = "0.34", default-features = false }
2121
chalk-ir = "0.34"
2222
chalk-recursive = "0.34"
2323

crates/rust-analyzer/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ threadpool = "1.7.1"
3232
rayon = "1.5"
3333
mimalloc = { version = "0.1.19", default-features = false, optional = true }
3434
lsp-server = "0.4.0"
35+
tracing = "0.1"
36+
tracing-subscriber = { version = "0.2", default-features = false, features = ["env-filter", "registry"] }
37+
tracing-tree = { version = "0.1.4" }
3538

3639
stdx = { path = "../stdx", version = "0.0.0" }
3740
flycheck = { path = "../flycheck", version = "0.0.0" }

crates/rust-analyzer/src/bin/main.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,32 @@ fn setup_logging(log_file: Option<PathBuf>) -> Result<()> {
6868
let filter = env::var("RA_LOG").ok();
6969
logger::Logger::new(log_file, filter.as_deref()).install();
7070

71+
tracing_setup::setup_tracing()?;
72+
7173
profile::init();
7274
Ok(())
7375
}
7476

77+
mod tracing_setup {
78+
use tracing::subscriber;
79+
use tracing_subscriber::layer::SubscriberExt;
80+
use tracing_subscriber::EnvFilter;
81+
use tracing_subscriber::Registry;
82+
use tracing_tree::HierarchicalLayer;
83+
84+
pub fn setup_tracing() -> super::Result<()> {
85+
let filter = EnvFilter::from_env("CHALK_DEBUG");
86+
let layer = HierarchicalLayer::default()
87+
.with_indent_lines(true)
88+
.with_ansi(false)
89+
.with_indent_amount(2)
90+
.with_writer(std::io::stderr);
91+
let subscriber = Registry::default().with(filter).with(layer);
92+
subscriber::set_global_default(subscriber)?;
93+
Ok(())
94+
}
95+
}
96+
7597
fn run_server() -> Result<()> {
7698
log::info!("server will start");
7799

0 commit comments

Comments
 (0)