dockerflow.logging.JsonLogFormatter is weird about %s style logging
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 50/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- python
- Domínio
- observability
Direção de pesquisa
The formatter is dockerflow.logging.JsonLogFormatter, so start in the dockerflow/logging.py module and find where it builds the msg field from the log record. The bug appears when the %s argument is not a string, such as a dict, so check whether the formatter uses the raw record.msg instead of the formatted message. Done means logger.info("Hi %s", {'name': 'Peter'}) puts the rendered text in Fields.msg.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I have this config:
# Logging
LOGGING_USE_JSON = values.BooleanValue(True)
LOGGING_DEFAULT_LEVEL = values.Value("INFO")
@property
def LOGGING(self):
return {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"json": {
"()": "dockerflow.logging.JsonLogFormatter",
"logger_name": "buildhub",
},
"verbose": {"format": "%(levelname)s %(asctime)s %(name)s %(message)s"},
},
"handlers": {
"console": {
"level": self.LOGGING_DEFAULT_LEVEL,
"class": "logging.StreamHandler",
"formatter": ("json" if self.LOGGING_USE_JSON else "verbose"),
},
"sentry": {
"level": "ERROR",
"class": (
"raven.contrib.django.raven_compat.handlers" ".SentryHandler"
),
},
"null": {"class": "logging.NullHandler"},
},
"root": {"level": "INFO", "handlers": ["sentry", "console"]},
...
When I do:
In [1]: import logging
In [2]: logger = logging.getLogger("myproject")
In [3]: logger.info("Hi!")
{"Timestamp": 1541787363833421056, "Type": "myproject", "Logger": "buildhub", "Hostname": "MacBook-Pro-131.local", "EnvVersion": "2.0", "Severity": 6, "Pid": 68488, "Fields": {"msg": "Hi!"}}
In [4]: logger.info("Hi %s", "peter")
{"Timestamp": 1541787379742094080, "Type": "myproject", "Logger": "buildhub", "Hostname": "MacBook-Pro-131.local", "EnvVersion": "2.0", "Severity": 6, "Pid": 68488, "Fields": {"msg": "Hi peter"}}
In [5]: logger.info("Hi %s", {'name': 'Peter'})
{"Timestamp": 1541787416647823104, "Type": "myproject", "Logger": "buildhub", "Hostname": "MacBook-Pro-131.local", "EnvVersion": "2.0", "Severity": 6, "Pid": 68488, "Fields": {}}
Notice that when the param to logger.debug(template, THIS) isn't a string the final "msg" becomes empty ("Fields": {}).
- Linguagem predominante
- Python
- Estrelas
- 41
- Forks
- 21
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de mozilla-services/python-dockerflow
-
Dificuldade 3/5 Meio dia Facilidade para iniciantes 15/100
mozilla-services/python-dockerflow#119 · 1 comentário ·
-
Dificuldade 2/5 Menos de uma hora Facilidade para iniciantes 15/100
mozilla-services/python-dockerflow#117 · 1 comentário ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
mozilla-services/python-dockerflow#116 · 1 comentário ·
-
Enhance core testsAberta
Dificuldade 3/5 Meio dia Facilidade para iniciantes 62/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 12/100
Todas as issues de mozilla-services/python-dockerflow
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
jbacalso24/mimry#291 ·
Mantenedores costumam responder em até 1 dia
-
good first issue
Dificuldade 2/5 Menos de uma hora Facilidade para iniciantes 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Mantenedores costumam responder em até 1 dia
-
from-review-extraction python severity:nit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
LearningCircuit/local-deep-research#7462 ·
Mantenedores costumam responder em até 2 dias
-
mermaid_extract.py silently discards single-line state-diagram notes; sequence notes are keptAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
cathrynlavery/diagram-design#441 ·
Mantenedores costumam responder em até 2 dias
-
[Cleanup] Include the public header in work_split.cppTalvez já em andamento @blozano-tt assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
tenstorrent/tt-metal#60850 ·
Mantenedores costumam responder em até 1 dia