## 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][1] de soporte en el sistema de ticket de este proyecto. Siempre copie la información de depuración mostrada en este mensaje. ```py import easymacro as app def info(): app.msgbox(app.INFO_DEBUG) return ``` ![Info debug](img/install_01.png) ### **debug** Mostrar información en la terminal. ```py import easymacro as app def test_debug(): msg = 'Verificar esta información...' app.debug(msg) return ``` Para ver este mensaje, es necesario iniciar LibreOffice desde la línea de comandos: ``` soffice --calc ``` Después de ejecutar la macro anterior, debe de ver: ``` 21/04/2023 17:04:49 - DEBUG - Verificar esta información... ```
### **info** Mostrar mensajes informativos en la terminal. ```py 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. ```py 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. ```py 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. ```python import easymacro as app 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. !!! warning inline end "Cuidado" Usa este método solo en tiempo de desarrollo. **No la use en producción**. ```py import easymacro as app @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 ```
### **mri** [MRI][2] es la mejor extensión para inspeccionar cualquier objeto UNO de LibreOffice. Necesita instalarla primero para poder llamarla. ```py import easymacro as app def inspeccionar_objeto(): obj = app.active app.mri(obj) return ```
### **inspect** Inspeccionar un objeto. ```py import easymacro as app 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 la información del objeto en una hoja de calculo. ```python def inspeccionar_objeto(): doc = app.active app.inspect(doc, True) return ``` [1]: https://git.cuates.net/elmau/easymacro/issues [2]: https://github.com/hanya/MRI