Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

dockerflow.logging.JsonLogFormatter should handle dates better

Aberta
#10 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
40/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Start with the JsonLogFormatter in the dockerflow.logging module, where json.dumps is called and the default encoder is used. The issue proposes a combined encoder that falls back to repr() for unknown objects and handles datetimes. Done means datetime values log as ISO strings and a test confirms the output. The issue is over nine years old with no linked pull request, so check the current code before starting.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

https://github.com/mozilla-services/python-dockerflow/issues/8 fixes the exception that can happen when you log objects. What'd be even nicer, as @jezdez pointed out, would be to handle datetimes/dates : currently they are serialized as "datetime.datetime(2017, 4, 6, 9, 27, 7, 479427)" because that's the repr() for a datetime object, but we could do better by using DjangoJSONEncoder, which knows how to handle those objects and more.

Something like this should work, to test:

class SafeJSONEncoder(json.JSONEncoder):
    def default(self, o):
        return repr(o)

class SafeDjangoJSONEncoder(DjangoJSONEncoder, SafeJSONEncoder):
    pass

Then use cls=SafeDjangoJSONEncoder when doing the json.dumps.

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

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de mozilla-services/python-dockerflow

Todas as issues de mozilla-services/python-dockerflow

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.