Tengo una situación en la que quiero escribir todos los registros creados por mí en un archivo de texto.
Estamos utilizando la API java.util.logging.Logger para generar los registros.
Lo intenté:
private static Logger logger = Logger.getLogger(className.class.getName());
FileHandler fh;
fh = new FileHandler("C:/className.log");
logger.addHandler(fh);
Pero aún obtengo mis registros solo en la consola ...
Respuestas:
Prueba esta muestra. Esto funciona para mi.
Produce la salida en MyLogFile.log
Editar:
Para quitar el controlador de la consola, use
dado que ConsoleHandler está registrado con el registrador principal del que derivan todos los registradores.
fuente
FileHandler(path, true)
para hacer que el registro se anexe al archivo de registro existente.En primer lugar, ¿dónde definió su registrador y desde qué clase \ método intenta llamarlo? Hay un ejemplo de trabajo, recién horneado:
En su código olvidó definir el formateador, si necesita uno simple puede hacerlo como mencioné anteriormente, pero hay otra opción, puede formatearlo usted mismo, hay un ejemplo (simplemente insértelo en lugar de esta línea fh .setFormatter (nuevo SimpleFormatter ()) siguiente código):
O cualquier otra modificación, lo que quieras. Espero eso ayude.
fuente
La ubicación del archivo de registro se puede controlar mediante el archivo logging.properties. Y se puede pasar como parámetro JVM ej:
java -Djava.util.logging.config.file=/scratch/user/config/logging.properties
Detalles: https://docs.oracle.com/cd/E23549_01/doc.1111/e14568/handler.htm
Configurar el controlador de archivos
Para enviar registros a un archivo, agregue FileHandler a la propiedad de controladores en el archivo logging.properties. Esto habilitará el registro de archivos a nivel mundial.
handlers= java.util.logging.FileHandler
Configure el controlador estableciendo las siguientes propiedades:java.util.logging.FileHandler.pattern especifica la ubicación y el patrón del archivo de salida. La configuración predeterminada es su directorio de inicio.
java.util.logging.FileHandler.limit especifica, en bytes, la cantidad máxima que el registrador escribe en cualquier archivo.
java.util.logging.FileHandler.count especifica cuántos archivos de salida recorrer.
java.util.logging.FileHandler.formatter especifica la clase de formateador java.util.logging que la clase de controlador de archivos utiliza para formatear los mensajes de registro. SimpleFormatter escribe resúmenes breves "legibles para humanos" de registros de anotaciones.
Para indicar a Java que use este archivo de configuración en lugar de $ JDK_HOME / jre / lib / logging.properties:
fuente
Una buena biblioteca disponible llamada log4j para Java .
Esto proporcionará numerosas características. Vaya a través del enlace y encontrará su solución.
fuente
Tal vez esto es lo que necesitas ...
fuente
fuente
fuente
Espero que la gente encuentre esto útil
fuente
Aquí está mi clase de registro basada en la respuesta aceptada :
fuente
Aquí hay un ejemplo de cómo sobrescribir la configuración de Logger del código. No requiere un archivo de configuración externo.
FileLoggerTest.java:
MyLogHandler.java
fuente