Skip to main content

Uma biblioteca para registrar logs e enviar notificações de erro para o Discord e MongoDB

Project description

GrupoB Trace Logger

GrupoB Trace Logger é uma biblioteca Python fácil de usar para registrar exceções e enviar mensagens diretamente para um canal do Discord via Webhook. Ideal para monitorar e gerenciar erros em aplicações de forma prática, com integração automática ao Discord.

Instalação

Instale a biblioteca usando pip:

pip install devs_tracelogger

Como Usar

Abaixo estão exemplos de como usar a biblioteca para capturar exceções e enviar notificações ao Discord.

Uso Básico

O exemplo a seguir mostra como criar uma instância da classe Log e registrar uma exceção diretamente no Discord:

from devs_tracelogger import Log

try:
    marionette = Marionette()  # Exemplo de código que pode gerar uma exceção
except Exception as ex:
    log = Log(
        webhook={"id": 123456789012345678, "token": "exemploDeToken12345"},
        default_user="Gelson Júnior",  # Nome do responsável
        bot_name="Calculadora"  # Nome do robô ou serviço executando
    )
    log.register(ex)  # Registra a exceção e envia a mensagem para o Discord

Caso você não deseje enviar a mensagem ao Discord, defina o parâmetro send_notification como False. Por padrão, ele está definido como True.

Uso com Parâmetros Dinâmicos

Os parâmetros também podem ser passados diretamente no método register. Quando valores são passados tanto no construtor quanto no método, os valores passados no register serão priorizados:

from devs_tracelogger import Log

try:
    1 / 0  # Exemplo de código que pode gerar uma exceção
except Exception as ex:
    #Definir apenas se desejar salvar o log no banco
    mongo_logger = {
        "mongo_uri":"mongodb://localhost:27017",
        "db_name":"error_logs",
        "collection_name":"logs"
    }

    log = Log(
        webhook={"id": 123456789012345678, "token": "exemploDeToken12345"},
        mongo=mongo_logger #Opicional, definir apenas se quiser salvar o log no banco
    )
    log.register(
        ex,
        {
            "bot_name": "Projeto Z",  # Nome do robô ou serviço
            "default_user": "Gelson Júnior"  # Nome do responsável pelo código
        }
    )

Retorno

O método register retorna um objeto JSON contendo informações detalhadas sobre o erro e o status da mensagem enviada:

{
    "status": 200,
    "data": {
        "filename": "...",
        "function": "...",
        "type_error": "...",
        "error": "...",
        "line": "...",
        "created_at": "...",
        "bot_name": "...",
        "default_user": "..."
    },
    "message": "Mensagem enviada com sucesso para o Discord"
}

Parâmetros

  • webhook (obrigatório): Um dicionário contendo o id e token do webhook do Discord.
{"id": int, "token": str}
  • mongo (Opcional): um dicionario contendo o mongo_uri, db_name e collection_name das conexões do mongo.
    • mongo_uri (str): A URI de conexão com o MongoDB. Exemplo: 'mongodb://localhost:27017'.
    • db_name (str): O nome do banco de dados onde os logs serão armazenados.
    • collection_name (str): O nome da collection onde os logs serão salvos.
mongo_logger = {
        "mongo_uri":"mongodb://localhost:27017",
        "db_name":"logs_db",
        "collection_name":"logs"
    }

Esses dados podem ser obtidos diretamente no Discord em: https://discord.com/api/webhooks/<id>/<token>.

  • default_user (opcional): Nome do responsável pelo robô ou código.
  • bot_name (opcional): Nome do robô ou aplicação que está rodando.
  • send_notification (opcional): Define se a notificação será enviada ao Discord (padrão: True). Se definido como False, apenas registrará o erro sem enviar a mensagem.

Exemplo de Mensagem no Discord

Quando um erro é registrado, a mensagem enviada para o canal do Discord incluirá detalhes como o tipo de erro, o nome do robô e o responsável:

[Erro] O robô Calculadora encontrou um problema:
Exception: divisão por zero
Responsável: Gelson Júnior

Contribuindo

Contribuições são sempre bem-vindas! Se encontrar algum problema ou tiver sugestões de melhoria, sinta-se à vontade para abrir uma issue ou enviar um pull request.

Licença

Este projeto é licenciado sob a licença MIT. Para mais informações, consulte o arquivo LICENSE.


Grupo Bachega

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

devs_tracelogger-0.2.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

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

devs_tracelogger-0.2.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: devs_tracelogger-0.2.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for devs_tracelogger-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c506dd7a58b444cf6e5acec1e7b49e33e37ba256ce0abe5a46482763e1bb2f1d
MD5 6666ed63a41b01583ab809f224d1f73c
BLAKE2b-256 bc117985d5c24556befd23f03ebe2e94d531c0b7b5eddbe9062fc03fcc166f80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for devs_tracelogger-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2d691be9608353980aa5414212c5eaada9b3ce2b9750720ffdff54a5fd0fd57
MD5 15fc6e3c23734d4451308a77d6620eb8
BLAKE2b-256 148e2e90b440151500afe133d7a993284a6fdf01ddd199d79b30369c199e0cc2

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