Priority issues between environment variable `RUST_LOG` and function call `filter_level` / `filter`.
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- rust
- Ambito
- observability-sre
Direzione di ricerca
Inizia dal comportamento del builder del logger relativo a filter_level(level), filter(None, level) e all'inizializzazione di RUST_LOG. Determina come vengono applicate attualmente le loro priorità, quindi definisci la precedenza prevista affinché RUST_LOG possa sovrascrivere il livello codificato direttamente nel codice e aggiungi la copertura per entrambe le forme di inizializzazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Environment variable RUST_LOG can only used to set "default policy", which means if filter_level(level) or filter(None, level) (they are practically equivalent) called at logger init, then environment variable RUST_LOG will cannot override the hardcoded log level.
This because environment variable RUST_LOG will initialized first (by default), then override by program logic. This might be a bug because commonly priority of environment variable > cli flag > config file or hardcoded.
Demo:
use log::{info, LevelFilter};
fn main() {
// Hardcoded log level by using `filter_level` or `filter`.
env_logger::builder().filter_level(LevelFilter::Info).init();
info!("starting up");
}
If set the environment variable RUST_LOG=warn, info output will still print:
demo on master [?] is 📦 v0.1.0 via 🦀 v1.67.0
at 14:04:38 fsh ❯ RUST_LOG=warn cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/demo`
[2023-01-31T06:04:43Z INFO demo] starting up
But if not setting log level at logger init:
use log::info;
fn main() {
env_logger::builder().init();
info!("starting up");
}
Then log level can be controlled easylly from RUST_LOG:
demo on master [?] is 📦 v0.1.0 via 🦀 v1.67.0
at 14:07:17 fsh ❯ RUST_LOG=info cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/demo`
[2023-01-31T06:07:21Z INFO demo] starting up
demo on master [?] is 📦 v0.1.0 via 🦀 v1.67.0
at 14:07:21 fsh ❯ RUST_LOG=warn cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/demo`
- Lingua principale
- Rust
- Stelle
- 1.1k
- Fork
- 150
- Merge medio
- 3m
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-cli/env_logger
-
Sanitization requires color, which parses every recordForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
rust-cli/env_logger#419 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
rust-cli/env_logger#379 · 5 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
rust-cli/env_logger#369 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
rust-cli/env_logger#367 · 1 commento ·
-
refactor the crate to separate the provided configurable formater and the optional custom formatterAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
rust-cli/env_logger#365 · 10 commenti ·
Tutte le issue di rust-cli/env_logger
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
RustCrypto/SSH#596 ·
-
proxy: SQL-over-HTTP turns empty arrays into [""] or [false], or HTTP 500 for int and float arraysAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
neondatabase/neon#12965 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
goauthentik/authentik#26867 ·
I maintainer di solito rispondono entro 1 giorno
-
api bug macos maintainer-needed p2 triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
area::tern difficulty::easy good first issue kind::cleanup triage::ready
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100