Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: antoniorb en Mayo 03, 2020, 07:43:09 AM

Título: Python Telegram bot
Publicado por: antoniorb en Mayo 03, 2020, 07:43:09 AM
Buenos dias,

estoy haciendo un bot para Telegram en Python, ya me funcionan cosas pero el problema es a la hora de depurar que no se como hacerlo. Utilizo el logger pero no se donde mirar los errores que se producen ¿en algun fichero? ¿Con algun comando?

¿Alguien me podría ayudar? Ahora mismo lo hago con textos intermedios y no es ergonómico

Gracias
¡

import logging




# Enable logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)
    # log all errors
    dp.add_error_handler(error)


Título: Re:Python Telegram bot
Publicado por: ??????? en Mayo 03, 2020, 01:27:43 PM

Buenas! En su código puede meter algo así:

Código (python) [Seleccionar]


import logging

FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'

logging.basicConfig(format=FORMAT,filename="fileLog.log",level=logging.DEBUG)

...

logging.error("Bot no se ha podido conectar...")

...



En cada porción de código donde crea que haya un posible error, coloque el logging.error(string).

Espero haberle ayudado.
Saludos!

-Kirari
Título: Re:Python Telegram bot
Publicado por: DtxdF en Mayo 06, 2020, 01:19:52 AM
Use 'print' o cualquier función (o instancia de alguna clase de un módulo, como 'logging' que imprime datos por la salida) sólo si usted sabe donde está ese error inesperado, ya sea en un bloque (como una función, un método de una clase, un bloque if, etc). Detectar errores con funciones como 'print' puede ser difícil al principio y también no es recomendable modificar el mismo proyecto para colocarlo, ya que sin querer (es una posibilidad) puede dañar más el código, al menos que sea un código muy pequeño y puede no causar un caos.

La alternativa más "profesional" y puede que más lenta, es usar 'pdb'.

Código (bash) [Seleccionar]
python3 -m pdb <El script aquí>

Recuerde: Funciones que impriman, con proyectos o códigos pequeños. Depuradores como 'pdb' con proyectos grandes o complicados.

~ DtxdF