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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08cfddd2ab009789c2906fe0b258315a25e5a82f216588cd16c399b0eff24ec9
|
|
| MD5 |
909b386f05561589d0ba5aa9aa3edc3d
|
|
| BLAKE2b-256 |
6332dcfba9aabdcbc1b4f3d8315f1f14fcb7dbe721e39e93bfe801ddebe863d1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed624e244ec490e95af58cba7598678ce6fe8f85646a485114569a748686cf7e
|
|
| MD5 |
e34d82c8894fb9a5edfdd542aa6f7e3f
|
|
| BLAKE2b-256 |
b9cfa1b8743bc61c17abb7ba13737ef4bc3c81e3c5475cfc030288cc3cd3dbfb
|