diff options
| author | bors <bors@rust-lang.org> | 2025-06-14 04:58:22 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-06-14 04:58:22 +0000 |
| commit | 64033a4ee541c3e9c178fd593e979c74bb798cdc (patch) | |
| tree | 0e0507dd657636c5ffe0e8cc9eb1ef48047e722b /compiler/rustc_driver_impl/src/lib.rs | |
| parent | 64c81fd10509924ca4da5d93d6052a65b75418a5 (diff) | |
| parent | 572b452bd50ae2c01ee783f584dbcd3fbd2e87f9 (diff) | |
| download | rust-64033a4ee541c3e9c178fd593e979c74bb798cdc.tar.gz rust-64033a4ee541c3e9c178fd593e979c74bb798cdc.zip | |
Auto merge of #142483 - workingjubilee:rollup-8qnhueh, r=workingjubilee
Rollup of 16 pull requests Successful merges: - rust-lang/rust#140969 (Allow initializing logger with additional tracing Layer) - rust-lang/rust#141352 (builtin dyn impl no guide inference) - rust-lang/rust#142046 (add Vec::peek_mut) - rust-lang/rust#142273 (tests: Minicore `extern "gpu-kernel"` feature test) - rust-lang/rust#142302 (Rework how the disallowed qualifier in function type diagnostics are generated) - rust-lang/rust#142405 (Don't hardcode the intrinsic return types twice in the compiler) - rust-lang/rust#142434 ( Pre-install JS dependencies in tidy Dockerfile) - rust-lang/rust#142439 (doc: mention that intrinsics should not be called in user code) - rust-lang/rust#142441 (Delay replacing escaping bound vars in `FindParamInClause`) - rust-lang/rust#142449 (Require generic params for const generic params) - rust-lang/rust#142452 (Remove "intermittent" wording from `ReadDir`) - rust-lang/rust#142459 (Remove output helper bootstrap) - rust-lang/rust#142460 (cleanup search graph impl) - rust-lang/rust#142461 (compiletest: Clarify that `--no-capture` is needed with `--verbose`) - rust-lang/rust#142475 (Add platform support docs & maintainers for *-windows-msvc) - rust-lang/rust#142480 (tests: Convert two handwritten minicores to add-core-stubs) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_driver_impl/src/lib.rs')
| -rw-r--r-- | compiler/rustc_driver_impl/src/lib.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/compiler/rustc_driver_impl/src/lib.rs b/compiler/rustc_driver_impl/src/lib.rs index 54a331a4904..0cd9e36a927 100644 --- a/compiler/rustc_driver_impl/src/lib.rs +++ b/compiler/rustc_driver_impl/src/lib.rs @@ -1500,13 +1500,31 @@ pub fn init_rustc_env_logger(early_dcx: &EarlyDiagCtxt) { /// This allows tools to enable rust logging without having to magically match rustc's /// tracing crate version. In contrast to `init_rustc_env_logger` it allows you to choose -/// the values directly rather than having to set an environment variable. +/// the logger config directly rather than having to set an environment variable. pub fn init_logger(early_dcx: &EarlyDiagCtxt, cfg: rustc_log::LoggerConfig) { if let Err(error) = rustc_log::init_logger(cfg) { early_dcx.early_fatal(error.to_string()); } } +/// This allows tools to enable rust logging without having to magically match rustc's +/// tracing crate version. In contrast to `init_rustc_env_logger`, it allows you to +/// choose the logger config directly rather than having to set an environment variable. +/// Moreover, in contrast to `init_logger`, it allows you to add a custom tracing layer +/// via `build_subscriber`, for example `|| Registry::default().with(custom_layer)`. +pub fn init_logger_with_additional_layer<F, T>( + early_dcx: &EarlyDiagCtxt, + cfg: rustc_log::LoggerConfig, + build_subscriber: F, +) where + F: FnOnce() -> T, + T: rustc_log::BuildSubscriberRet, +{ + if let Err(error) = rustc_log::init_logger_with_additional_layer(cfg, build_subscriber) { + early_dcx.early_fatal(error.to_string()); + } +} + /// Install our usual `ctrlc` handler, which sets [`rustc_const_eval::CTRL_C_RECEIVED`]. /// Making this handler optional lets tools can install a different handler, if they wish. pub fn install_ctrlc_handler() { |
