En esta guía aprenderás a registrar mensajes en el servidor usando la clase HytaleLogger de Hytale, controlando niveles de log, mensajes con formato y excepciones.
Introducción a HytaleLogger
Una manera de registrar mensajes es usando la propia clase de Hytale: HytaleLogger. Esta clase extiende com.google.common.flogger.AbstractLogger.
Los logs aparecerán en el mismo archivo de log del servidor, ubicado en:
{carpeta de instalación de Hytale}/UserData/Saves/{World}/logs
Crear un Logger
Puedes crear un logger con un nombre para identificarlo fácilmente:
HytaleLogger logger = HytaleLogger.get("MiLogger");
El nombre se mostrará antes de cada mensaje en el archivo de logs.
También puedes usar .forEnclosingClass() para obtener automáticamente un logger para la clase actual, sin tener que cambiar el nombre manualmente:
HytaleLogger logger = HytaleLogger.forEnclosingClass();
Ejemplo Básico de Uso
Crear un logger como atributo estático en la clase principal del plugin:
import com.hypixel.hytale.logger.HytaleLogger;
public class ExamplePlugin extends JavaPlugin {
public static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
@Override
protected void setup() {
LOGGER.atInfo().log("Mi plugin de ejemplo se ha cargado");
}
}
Luego, puedes usar el logger en cualquier parte del plugin:
ExamplePlugin.LOGGER.atInfo().log("Hola mundo");
Niveles de Log
Todos los mensajes tienen un nivel asociado, lo que permite categorizar y controlar cómo se registran.
Por defecto, los niveles que se imprimen son Info, Warn y Severe.
LOGGER.atInfo().log("Información general sobre el comportamiento normal.");
LOGGER.atWarning().log("Indica un problema potencial o situación que podría causar un error.");
LOGGER.atSevere().log("Error grave que impedirá el funcionamiento esperado.");
Argumentos con Plantilla (Template Arguments)
HytaleLogger soporta estilo printf, permitiendo incluir variables en los mensajes:
final String name = "World";
LOGGER.atInfo().log("Hola %s", name);
// Imprime: Hola World
Algunos especificadores comunes:
%s→ String%d→ Entero%f→ Float/Double%b→ Boolean%c→ Carácter
Registrar Excepciones y Stack Traces
Si deseas incluir una excepción o el stack trace en el log, puedes establecer la causa:
try {
// código que puede lanzar IOException
} catch (IOException e) {
LOGGER.atSevere().withCause(e).log("¡Error al procesar!");
}
Esto imprimirá el mensaje junto con la información completa de la excepción en los logs del servidor.
Conclusión
HytaleLogger te permite mantener un registro claro, categorizado y profesional de lo que ocurre en tu servidor o plugin, incluyendo errores, advertencias y mensajes informativos con soporte para variables y excepciones.
