Skip to main content

DataQuantum Logger

Python License: MIT

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

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)

Source distribution for dataquantum-logger 0.3.0
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)

Table of built distributions (wheels) for dataquantum-logger 0.3.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page