Open
Conversation
Se introduce un mecanismo de logs robusto usando la librería nativa de Java, eliminando la dependencia de impresiones temporales en consola (System.out) y ofreciendo un registro persistente de todos los eventos. Cambios clave: - Creación de LoggerConfig.java para manejar la exportación a archivo (.log) y a la consola con un formato de fecha personalizado. - Se actualizó el 'parseo' en Config.java para extraer la variable 'logFile' desde config.json, con un valor por defecto seguro de 'logs/dps.log'. - Migración exitosa de todos los mensajes System.out.println y System.err.println hacia el nuevo Logger a través de DiscordPipeSocket, RobloxMonitor y SourceManager. - README.md actualizado con instrucciones explícitas sobre la configuración de logs y pasos para solucionar errores (Troubleshooting). - Solución crucial: Se cubrió la inicialización de la bandeja del sistema (SystemTray) con 'isSupported()' para prevenir los crasheos por UnsupportedOperationException en los entornos de Linux.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumen del Pull Request
Este PR introduce dos mejoras fundamentales para la infraestructura del proyecto: soporte de compilación y ejecución nativo para entornos de Linux (sin que la app crashee), y una reestructuración completa del sistema de rastreo de eventos mediante logs persistentes.
¿Qué se ha añadido/cambiado?
1. Entorno y Soporte para Linux:
build.shyLINUX-DEV.md: Se agregaron los scripts y documentación equivalente a la de Windows para facilitar la contribución desde distribuciones Linux.if (SystemTray.isSupported()). Esto evita el crasheo inmediato porUnsupportedOperationExceptioncuando el puente se ejecuta en entornos Linux o servidores headless que no soportan bandejas nativas.2. Sistema de Logs Persistentes (
java.util.logging):LoggerConfig.javautilizando exclusivamente la librería nativa de Java, evitando inflar el peso del ejecutable.System.out.printlnySystem.err.printlnen todo el proyecto (DiscordPipeSocket,RobloxMonitor,SourceManager), reemplazándolos conlogger.infoylogger.severe.logs/y escribe todos los eventos en ella con marcas de tiempo (timestamps) precisas, facilitando enormemente el debugging si la consola se cierra.Config.javaa extraer una nueva propiedad opcional"logFile"desde elconfig.json. Si el usuario la omite, el código tiene una red de seguridad que asume inteligentemente la rutalogs/dps.log.README.mdfue actualizado para explicar el uso nativo de los nuevos logs físicos (reemplazando el viejo concepto delogs.jar).¿Cómo probar esto en Windows?
He diseñado estos cambios cuidando absolutamente la compatibilidad con Windows. Para que puedas validar mi código en tu propia computadora, sigue estos pasos:
build.bat. El script debería ejecutarse sin errores e incluir silenciosamente nuestra nueva clase (LoggerConfig.class).config.jsonnormal y añade la nueva variable al final. Debería verse así:{ "clientId": "1479761532412887040", "wsPort": 6680, "sourceTimeout": 15000, "logFile": "logs/prueba-de-logs.log" }DiscordPipeSocket.jargenerado en la carpeta (ya sea con doble clic o desde una consola). Notarás que el formato de los textos cambió en la terminal negra, incorporando la hora exacta.custom-status/y haz doble clic en el archivoindex.htmlpara que se abra en tu navegador web.logs/en el proyecto. Ábrela y abreprueba-de-logs.log. Ahí verás escrito con éxito el momento exacto en el que el programa arrancó y en el que el archivo HTML se conectó exitosamente a tu puente.