Skip to main content

Biblioteca padrão de logging estruturado para as aplicações da Conta Comigo Digital. Oferece suporte para logs de APIs, Lambdas e outros serviços, com integração ao AWS CloudWatch e suporte a JSON para SIEMs.

Project description

CCD Logger

Biblioteca de logging estruturado em formato JSON para as aplicações da fintech Conta Comigo Digital.
Compatível com Django, AWS Lambda e scripts genéricos, com foco em integração com SIEMs e observabilidade.


Instalação

pip install ccd-logger

Ou diretamente do GitHub:

pip install git+https://git@github.com/conta-comigo/ccd-logger.git

Configuração

O logger é configurado via variáveis de ambiente:

Variável Padrão Descrição
SERVICE_NAME undefined-service Nome do serviço que aparece em todos os logs
ENVIRONMENT dev Ambiente (dev, staging, prod)
LOG_LEVEL INFO Nível de log (DEBUG, INFO, WARNING, ERROR, CRITICAL)
LOG_FORMAT json Formato de saída: json para produção, qualquer outro valor para texto simples

Uso básico

from ccd_logger import get_logger

logger = get_logger(__name__)

logger.info("Operação concluída")
logger.error("Falha ao processar", extra={"cpf": "12345678900"})

Saída JSON:

{
  "asctime": "2024-01-01 12:00:00,000",
  "levelname": "INFO",
  "name": "meu_modulo",
  "message": "Operação concluída",
  "service": "undefined-service",
  "environment": "dev",
  "filename": "meu_modulo.py",
  "lineno": 5,
  "funcName": "main"
}

Contextos disponíveis

Generic (padrão)

Para scripts e serviços sem framework específico. Veja o exemplo completo em ccd_logger/samples/generic_logger.py.

Lambda

Injeta automaticamente campos do contexto do Lambda (function_name, memory_limit_in_mb, request_id) em todos os logs da execução.

logger = get_logger(__name__, context="lambda", context_data=context)

structure_logs

Permite adicionar campos persistentes e serializar dados complexos para todos os logs subsequentes:

logger.structure_logs(
    append=True,           # False para resetar campos extras antes de adicionar
    data=meu_dict,         # kwargs são adicionados como campos extras em todos os logs
    serializer=json.dumps  # aplicado a valores dict/list antes de armazenar
)
logger.info("Processamento concluído")
# {"message": "Processamento concluído", "data": "{\"chave\": \"valor\"}", ...}

Veja o exemplo completo em ccd_logger/samples/lambda_logger.py.

Django

Prepara campos específicos de requests HTTP (path, method, status_code, response_time, user, user_agent, user_ip).

logger = get_logger(__name__, context="django")

Veja o exemplo completo em ccd_logger/samples/django_logger.py.


Campos comuns em todos os logs

Independente do contexto, todo log inclui:

Campo Descrição
asctime Timestamp do log
levelname Nível (INFO, ERROR, etc.)
name Nome do logger
message Mensagem
service Valor de SERVICE_NAME
environment Valor de ENVIRONMENT
filename Arquivo de origem do log
lineno Linha de origem do log
funcName Função/método de origem do log

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ccd_logger-0.2.0.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ccd_logger-0.2.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file ccd_logger-0.2.0.tar.gz.

File metadata

  • Download URL: ccd_logger-0.2.0.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ccd_logger-0.2.0.tar.gz
Algorithm Hash digest
SHA256 08cfddd2ab009789c2906fe0b258315a25e5a82f216588cd16c399b0eff24ec9
MD5 909b386f05561589d0ba5aa9aa3edc3d
BLAKE2b-256 6332dcfba9aabdcbc1b4f3d8315f1f14fcb7dbe721e39e93bfe801ddebe863d1

See more details on using hashes here.

File details

Details for the file ccd_logger-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ccd_logger-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ccd_logger-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed624e244ec490e95af58cba7598678ce6fe8f85646a485114569a748686cf7e
MD5 e34d82c8894fb9a5edfdd542aa6f7e3f
BLAKE2b-256 b9cfa1b8743bc61c17abb7ba13737ef4bc3c81e3c5475cfc030288cc3cd3dbfb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page