# Herramientas para depurar

### INFO_DEBUG

Mostrar información de depuración en un cuadro de mensaje.

Si tiene cualquier problema en su código durante el desarrollo de sus macros, puede abrir un ticket de soporte en el sistema de ticket de este proyecto. Siempre copie la información de depuración mostrada en este mensaje.

    import easymacro as app

    def info():
        app.msgbox(app.INFO_DEBUG)
        return

### debug

Mostrar información en la terminal.

    import easymacro as app

    def test_debug():
        msg = 'Verificar esta información...'
        app.debug(msg)
        return

    11/08/2022 18:15:45 - DEBUG - Verificar esta información...

### info

Mostrar mensajes informativos en la terminal.

    import easymacro as app

    def test_info():
        msg = 'Iniciando proceso...'
        app.info(msg)
        return

    11/08/2022 18:23:53 - INFO - Iniciando proceso...

### error

Mostrar mensajes de error en la terminal.

    import easymacro as app

    def test_error():
        msg = 'Error 505'
        app.error(msg)
        return

    11/08/2022 18:27:34 - ERROR - Error 505

### save_log

Guardar registro en un archivo, automáticamente se agrega la fecha y hora.

    import easymacro as app

    def test_save_log():

        app.save_log('/home/mau/log.txt', 'PyUNO')
        app.save_log('/home/mau/log.txt', 'Maldito Mundo')

        return

    cat ~/log.txt
    2022-08-11 18:30:11 - 'PyUNO'
    2022-08-11 18:30:11 - 'Maldito Mundo'

### msgbox

Mostrar cualquier información en un cuadro de mensaje.

    def message():

        msg = 'Por favor, consume menos.'
        app.msgbox(msg)

        msg = ('uno', 2, 'tres')
        app.msgbox(msg)

        msg = {'nombre': 'Teresa'}
        app.msgbox(msg)

        app.msgbox(app)

        return

### catch_exception

Capturar cualquier error que se produzca al ejecutar una macro.

    @app.catch_exception
    def test_capturar_error():
        r = 1 / 0
        return

    11/08/2022 18:44:36 - ERROR - test_capturar_error
    Traceback (most recent call last):
      File "/home/mau/.config/libreoffice/4/user/Scripts/python/pythonpath/easymacro/easytools.py", line 115, in func
        return f(*args, **kwargs)
      File "/home/mau/.config/libreoffice/4/user/Scripts/python/test.py", line 18, in test_capturar_error
        r = 1 / 0
    ZeroDivisionError: division by zero

Usa este método solo en tiempo de desarrollo. No la uses en producción.

### mri

MRI es la mejor extensión para inspeccionar cualquier objeto UNO de LibreOffice. Necesita instalarla primero para poder llamarla.

    def inspeccionar_objeto():
        obj = app.active
        app.mri(obj)
        return

### inspect

Inspeccionar un objeto.

    def inspeccionar_objeto():
        doc = app.active
        data = app.inspect(doc)
        for p in data.properties:
            app.debug(p)
        for m in data.methods:
            app.debug(m)
        return

Vaciar en una hoja de calculo.

    def inspeccionar_objeto():
        doc = app.active
        app.inspect(doc, True)
        return