refactor the crate to separate the provided configurable formater and the optional custom formatter
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- rust
- Ambito
- developer-experience
Direzione di ricerca
Inizia tracciando le API Builder e Logger descritte nell’issue, incluse fmt::Builder e il percorso del formatter personalizzato. Confronta le opzioni correnti del formatter con i design proposti build_with_custom_formatter e config_builder; il lavoro è completo quando il formatter configurabile è separato dalla formattazione personalizzata senza le attuali asperità dell’API.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This crate does three things:
- It parses environment variables into a verbosity configuration for individual modules (Env)
- It filters log messages against said configuration (Logger.filter)
- It provides a configurable formater (Logger.format)
You will generally read en environment, convert it to a filter and then combine the filter and a formater into a Logger which you install as default logger.
Technically all three are usable in isolation.
In practice almost everybody is using 2., most people will be using 1. with slight modifications to the default logging level, for example using verbosity flags in clis.
3 is the most commonly exchanged. This is reflected by the builder giving you the option of providing a custom formater.
This functionality should be moved to the Logger. If you want a custom formater you do not interact with the provided configurable formater in any way, but are still forced to use the type to create a Logger.
The current behaviour increases the internal complexity of the Builder struct and leads to weird api crincles. For example after calling Builder.format(|my| fn) technically every try to modify the configurable formatter (ex. format_level) should panic, as that is programmer error (unless ofc it is followed by a call to default_format).
This issue proposes to create a build_with_custom_formatter function instead. This would allow fmt::Builder to be retired.
Also since 90% of the api on the Builder is formatter options a single fn config_builder(|f: formatter|) could reduce duplication.
- Lingua principale
- Rust
- Stelle
- 1.1k
- Fork
- 149
- Merge medio
- 3h 35m
- PR unite (30g)
- 3
Preparare l'ambiente
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
-
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 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
rust-cli/env_logger#364 · 11 commenti · 2 reazioni ·
Tutte le issue di rust-cli/env_logger
Issue simili
-
type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
stackabletech/kafka-operator#1033 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue needs testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 3 giorni
-
docs: release notes v3.7.0–v3.8.0 footer links to README/CHANGELOG are broken after docs reorgAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
farion1231/cc-switch#7744 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
datafusion
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
apache/iceberg-rust#3297 ·
I maintainer di solito rispondono entro 1 giorno