diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-06-21 22:42:02 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2021-06-21 22:42:02 +0100 |
commit | 37dc2dfada170c28237f7bd20dec6476a420df32 (patch) | |
tree | eaa027c4c988548ba5843d1c5382ce808e320435 | |
parent | afe056eef1869d1733f0d62d36f15d7db3ccfa54 (diff) | |
parent | ceeee5e3c6e2ab24d6d83a1e000780da537c1507 (diff) |
Merge #9348
9348: output to log file if RA_LOG_FILE is defined in environment r=rezural a=rezural
This adds a check for RA_LOG_FILE, and logs to that if defined. It currently overrides flags.log_file. If this is undesirable, I will add a check.
Co-authored-by: rezural <[email protected]>
-rw-r--r-- | crates/rust-analyzer/src/bin/main.rs | 9 | ||||
-rw-r--r-- | docs/dev/README.md | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/crates/rust-analyzer/src/bin/main.rs b/crates/rust-analyzer/src/bin/main.rs index afc96505f..97246cae6 100644 --- a/crates/rust-analyzer/src/bin/main.rs +++ b/crates/rust-analyzer/src/bin/main.rs | |||
@@ -60,7 +60,14 @@ fn try_main() -> Result<()> { | |||
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | setup_logging(flags.log_file.as_deref(), flags.no_log_buffering)?; | 63 | let mut log_file = flags.log_file.as_deref(); |
64 | |||
65 | let env_log_file = env::var("RA_LOG_FILE").ok(); | ||
66 | if let Some(env_log_file) = env_log_file.as_deref() { | ||
67 | log_file = Some(Path::new(env_log_file)); | ||
68 | } | ||
69 | |||
70 | setup_logging(log_file, flags.no_log_buffering)?; | ||
64 | let verbosity = flags.verbosity(); | 71 | let verbosity = flags.verbosity(); |
65 | 72 | ||
66 | match flags.subcommand { | 73 | match flags.subcommand { |
diff --git a/docs/dev/README.md b/docs/dev/README.md index e81f1e74c..a394b8501 100644 --- a/docs/dev/README.md +++ b/docs/dev/README.md | |||
@@ -131,7 +131,8 @@ Logging is done by both rust-analyzer and VS Code, so it might be tricky to figu | |||
131 | 131 | ||
132 | Inside rust-analyzer, we use the standard `log` crate for logging, and `env_logger` for logging frontend. | 132 | Inside rust-analyzer, we use the standard `log` crate for logging, and `env_logger` for logging frontend. |
133 | By default, log goes to stderr, but the stderr itself is processed by VS Code. | 133 | By default, log goes to stderr, but the stderr itself is processed by VS Code. |
134 | `--log-file <PATH>` CLI argument allows logging to file. | 134 | `--log-file <PATH>` CLI argument allows logging to file. |
135 | Setting the `RA_LOG_FILE=<PATH>` environment variable will also log to file, it will also override `--log-file`. | ||
135 | 136 | ||
136 | To see stderr in the running VS Code instance, go to the "Output" tab of the panel and select `rust-analyzer`. | 137 | To see stderr in the running VS Code instance, go to the "Output" tab of the panel and select `rust-analyzer`. |
137 | This shows `eprintln!` as well. | 138 | This shows `eprintln!` as well. |