log-decor 2.0
Nesta postagem venho anunciar a versão 2.0 da minha biblioteca open-source, log-decor!
Os links referentes à biblioteca são os seguintes:
A log-decor é uma biblioteca Python que fornece decoradores para adicionar a funcionalidade de logging aos objetos.
Algumas novidades relacionadas ao uso da biblioteca são:
Antes, os decoradores só podiam ser usados em métodos de classes, mas agora eles também podem ser utilizados em funções avulsas.
Um novo decorador foi adicionado, em que o usuário pode fornecer funções para processar os argumentos e o resultado do objeto decorado antes que essas informações sejam logadas.
Foram realizadas também algumas melhorias internas na biblioteca, como:
O código foi refatorado de forma a torná-lo mais simples, compreensível e de acordo com os princípios de Código Limpo;
Foi adicionado um workflow de testes unitários para garantir a qualidade do software.
A documentação foi transferida do Read the Docs para o GitHub Pages.
E por último, mas não menos importante, agora a biblioteca está publicada pelo PyPI e pode ser instalada facilmente com o comando
pip install log-decor
Exemplos de uso
Adicionar funcionalidade de logging a uma função
from log_decor import log_info
# logs no nível DEBUG
@log_info()
def f():
pass
>>> logging.basicConfig(level=logging.DEBUG)
>>> f()
DEBUG:root:f() [0.0001s] -> None
Adicionar logger a uma classe
from log_decor import add_logger
# logger com nome 'Exaxmple'
@add_logger()
class Example:
pass
# logger com nome 'LoggerName'
@add_logger('LoggerName')
class Example:
pass
Adicionar funcionalidade de logging a um método
from log_decor import add_logger, log_info
# logger com nome 'Example'
@add_logger()
class Example:
# logs no nível DEBUG
@log_info()
def f(self):
pass
>>> logging.basicConfig(level=logging.DEBUG)
>>> example = Example()
>>> example.f()
DEBUG:Example:f() [0.0001s] -> None
Definir as configurações de logging
import logging
logging.basicConfig(filename='example.log',
level=logging.WARNING)