Option to conditionally log to stderr only above a given level
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- rust
- Domaine
- observability
Piste de recherche
Commencez par localiser la configuration Target de env_logger et le chemin de Builder::format() mentionné dans l’issue. Vérifiez comment les records sont actuellement redirigés vers stdout ou stderr, puis ajoutez une redirection conditionnelle selon le niveau de log et vérifiez que les records de niveau inférieur utilisent stdout, tandis que les records du niveau configuré ou supérieur utilisent stderr.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When using env_logger in a binary running in Google Kubernetes Engine, everything it logs gets recorded as an error log because it logs to stderr by default:

This is just the actix-web logger middleware logging requests from the Gcloud healthcheck service at INFO (plus an easter egg of a web crawler looking for an admin login form?), but Gcloud thinks they're error logs because they were printed to stderr.
Of course, we could just set Target::Stdout and call it a day, but I would like to retain the ability to print actual error logs to stderr as we want to set this up to page someone if our API service is throwing actual errors.
I'm thinking another variant to Target that looks something like:
enum Target {
// ...
// Print to `stderr` if the record level is at or above the given `log::Level`, otherwise `stdout`.
StdoutOrStderrAt(log::Level),
}
I'm also considering, as a workaround, using the Builder::format() method to conditionally print to stderr but I'm not sure if this would break things. It's suboptimal either way:
builder.format(|f, record| {
if record.level() >= log::Level::Error {
eprintln!(/* format `record` using the same format as the default formatter */)
} else {
write!(fmt, "{}", record.args())
}
})
- Langage dominant
- Rust
- Étoiles
- 1.1k
- Forks
- 150
- Merge moyen
- 2 min
- PR mergées (30 j)
- 1
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de rust-cli/env_logger
-
Sanitization requires color, which parses every recordPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
rust-cli/env_logger#419 · 2 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
rust-cli/env_logger#379 · 5 commentaires ·
-
Changing the target of loggingOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
rust-cli/env_logger#369 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
rust-cli/env_logger#367 · 1 commentaire ·
-
refactor the crate to separate the provided configurable formater and the optional custom formatterOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
rust-cli/env_logger#365 · 10 commentaires ·
Toutes les issues de rust-cli/env_logger
Issues similaires
-
bug easy good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
lacs-project/sysknife#659 ·
Les mainteneurs répondent en général sous 2 jours
-
E_FIT_INPUT_MISSING (mixture overrides): the message says ferx-r bundles lack mixture_overridesOuverteP3
Difficulté 1/5 Moins d'une heure Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
Document multi-value claims with rowBoundaries operator:in (and their per-record application)Ouvertedocumentation
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
registrystack/registry-stack#2431 ·
Les mainteneurs répondent en général sous 1 jour
-
contribution
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
farion1231/cc-switch#8863 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour