DataQuantum Logger
Pacote Python para configurar logs de forma simples e reutilizável, permitindo registrar mensagens em arquivos e, opcionalmente, exibi-las no console.
Ideal para aplicações Python, pipelines ETL, APIs e projetos de engenharia de dados que precisam registrar informações de execução, avisos e erros.
Funcionalidades
- Gravação de logs em arquivo.
- Exibição opcional de logs no console.
- Configuração do nível de logging.
- Personalização do formato das mensagens.
- Definição da codificação do arquivo de log.
- Criação automática dos diretórios necessários.
- Tratamento de erros de configuração e de sistema de arquivos.
Instalação
Instale o pacote pelo PyPI:
pip install dataquantum-logger
Como funciona?
A função setup_logger() recebe um dicionário Python chamado logging_config, que contém as configurações necessárias para inicializar o sistema de logging.
O parâmetro show_console controla a exibição das mensagens no console:
False: registra mensagens no arquivo, sem adicionar um handler de console.True: registra mensagens no arquivo e também no console.
Exemplo:
from dataquantum_logger import setup_logger
setup_logger(logging_config, show_console=True)
O argumento logging_config deve ser fornecido pelo usuário. O pacote não cria automaticamente esse dicionário nem carrega arquivos de configuração externos.
Estrutura do parâmetro logging_config
O dicionário precisa conter duas seções: logging e logs.
logging_config = {
"logging": {
"level": "INFO",
"format": "%(asctime)s - %(levelname)s - %(message)s",
"encoding": "utf-8",
},
"logs": {
"file": "logs/application.log",
},
}
Parâmetros de configuração
| Chave | Descrição | Exemplo |
|---|---|---|
logging_config["logs"]["file"] |
Caminho do arquivo de log | logs/application.log |
logging_config["logging"]["level"] |
Nível mínimo de logging | INFO |
logging_config["logging"]["format"] |
Formato das mensagens | %(levelname)s - %(message)s |
logging_config["logging"]["encoding"] |
Codificação do arquivo | utf-8 |
1. logging_config["logs"]["file"]
Define o caminho onde as mensagens serão armazenadas.
"logs": {
"file": "logs/application.log"
}
Nesse exemplo, o arquivo será criado em logs/application.log, relativamente ao diretório de trabalho atual do processo Python.
A função cria os diretórios intermediários caso não existam.
2. logging_config["logging"]["level"]
Define o nível mínimo das mensagens que serão registradas.
"logging": {
"level": "INFO"
}
Níveis comuns:
| Nível | Finalidade |
|---|---|
DEBUG |
Informações detalhadas para depuração |
INFO |
Eventos normais da aplicação |
WARNING |
Situações que merecem atenção |
ERROR |
Falhas durante a execução |
CRITICAL |
Falhas graves |
Por exemplo, com o nível INFO, mensagens DEBUG normalmente não serão registradas.
3. logging_config["logging"]["format"]
Define como cada mensagem será apresentada.
"format": "%(asctime)s - %(levelname)s - %(message)s"
Os campos são substituídos automaticamente pelo módulo logging:
%(asctime)s: data e hora.%(levelname)s: nível da mensagem.%(message)s: conteúdo da mensagem.%(name)s: nome do logger.
Exemplo de saída:
2026-10-21 14:00:00,000 - INFO - Pipeline iniciado
4. logging_config["logging"]["encoding"]
Define a codificação utilizada para gravar o arquivo.
"encoding": "utf-8"
O UTF-8 é uma escolha recomendada para preservar caracteres acentuados e outros caracteres Unicode.
5. show_console
Esse parâmetro pertence à função, não ao dicionário de configuração.
setup_logger(logging_config)
A chamada acima utiliza show_console=False, seu valor padrão.
Para exibir mensagens no console:
setup_logger(logging_config, show_console=True)
Em ambos os casos, o arquivo continua sendo utilizado.
Utilizando um arquivo YAML externo
As configurações podem ser mantidas em um arquivo config/logging.yaml, separado do código Python.
Estrutura sugerida:
meu_projeto/
├── config/
│ └── logging.yaml
├── src/
│ └── main.py
└── logs/
Arquivo config/logging.yaml
logging:
level: INFO
format: "%(asctime)s - %(levelname)s - %(message)s"
encoding: utf-8
logs:
file: logs/application.log
Arquivo src/main.py
O YAML precisa ser carregado para um dicionário antes de chamar setup_logger().
import logging
from pathlib import Path
import yaml
from dataquantum_logger import setup_logger
def main() -> None:
"""Load configuration and initialize application logging."""
config_path = Path("config/logging.yaml")
with config_path.open("r", encoding="utf-8") as file:
logging_config = yaml.safe_load(file)
setup_logger(logging_config, show_console=True)
logger = logging.getLogger(__name__)
logger.info("Aplicação iniciada.")
logger.warning("Exemplo de aviso.")
if __name__ == "__main__":
main()
Para esse exemplo, instale também o PyYAML:
pip install PyYAML
Importante: o PyYAML é utilizado apenas pelo código da aplicação que lê o arquivo YAML. Ele não é uma dependência obrigatória do DataQuantum Logger.
Execute o exemplo a partir da raiz do projeto:
python src/main.py
Tratamento de erros
A função pode gerar as seguintes exceções:
ValueError: quando faltam chaves obrigatórias ou existem tipos incompatíveis na configuração.OSError: quando ocorre uma falha ao criar diretórios ou abrir o arquivo de log.
Essas exceções permitem identificar problemas de configuração e de acesso ao sistema de arquivos.
Comportamento global
A função utiliza logging.basicConfig(..., force=True), que substitui os handlers existentes do logger raiz.
Por isso, recomenda-se inicializar a configuração uma vez, no início da aplicação, antes de iniciar o pipeline ou as rotas da API.
Licença
Este projeto é distribuído sob a licença MIT.
Autor e contato
DataQuantum
- GitHub: jcarlossc
- Repositório: dataquantum-yaml-reader
- E-mail: jcarlossc1977@gmail.com
Metadata
Release files for dataquantum-logger 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dataquantum_logger-0.3.0.tar.gz | 5.3 kB | With provenance | Details for dataquantum_logger-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dataquantum_logger-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for dataquantum_logger-0.3.0-py3-none-any.whl |
Total release size: 11.2 kB
Release files / dataquantum_logger-0.3.0.tar.gz
| Download URL | dataquantum_logger-0.3.0.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e18e699ce86563eec74d3f567590da2f2fb4fd3853aceb9e47343e565783b5c
|
|
BLAKE2b-256 checksum How to use checksums |
752a7456d7c88393b538ecd18f573ce00ea03fb0d9806a3ea6acbea87ee884ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / dataquantum_logger-0.3.0-py3-none-any.whl
| Download URL | dataquantum_logger-0.3.0-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b2187170353fa36fa878624e0dce70aad541dab2cc9b15ae517f5dbdd9c8621
|
|
BLAKE2b-256 checksum How to use checksums |
11b2af2a793664ec905a1c8dba13de40d8855ce09b1024bd85ed7c85fac68290
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logSecurity for dataquantum-logger 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for dataquantum_logger-0.3.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.