util logger log examples ejemplo create crear archivo java java.util.logging

ejemplo - logger in java examples



Java Logging-¿dónde está mi archivo de registro? (6)

Estoy teniendo problemas para encontrar mis archivos de registro.

Estoy usando Java Logging - java.util.logging - en Eclipse 3.7.1 en Windows XP. Las líneas relevantes de mi archivo logging.properties son:

handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler .level=INFO java.util.logging.FileHandler.pattern = %h/java%u.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

Hasta donde puedo entender, después de ejecutar estas dos líneas:

Logger logger = Logger.getLogger("test"); logger.logp(Level.INFO, "myClass", "myMethod", "Alcatraz");

mi archivo de registro debe estar en C:/Documents and Settings/[My Windows ID]/javaX.log donde X es un entero.

Tengo 5 archivos java.log diferentes en ese directorio, java0.log través de java4.log , pero ninguno de ellos contiene mi registro o incluso un registro con la fecha de hoy. Hice algunas búsquedas en Google y encontré el seguimiento y el registro, lo que implica que mis registros deberían estar en una ubicación diferente, c:/Documents and Settings/[My Windows ID]/Application Data/Sun/Java/Deployment/log . Hay un archivo allí, llamado plugin5581819941091650582.log , pero está esencialmente vacío:

<?xml version="1.0" encoding="windows-1252" standalone="no"?> <!DOCTYPE log SYSTEM "logger.dtd"> <log> </log>

Su fecha de creación es la semana pasada. (No estoy seguro de qué proceso lo creó; ciertamente no lo creé explícitamente).

Entonces, ¿dónde está mi archivo de registro, entonces? No puedo pensar en ningún otro lugar para mirar.

Además, ¿alguien sabe cuándo logging.properties en vigencia los cambios en logging.properties ? Si cambié el nivel de registro o el FileHandler.pattern , ¿qué tendría que pasar antes de que mi programa viera los cambios? Simplemente guardar los cambios en logging.properties es claramente insuficiente. ¿Tendré que reiniciar Eclipse? ¿O reiniciar la computadora? Sólo curioso. Para mí no es tan importante como averiguar dónde está realmente mi archivo de registro.


¿Dónde se encuentra su archivo logging.properties ? Debería estar disponible en la raíz del classpath. Como una comprobación de validez, ¿qué imprime el siguiente código?

System.out.println(getClass().getClassLoader().getResource("logging.properties"));

Si el código está en un contexto static , use

System.out.println(ClassName.class.getClassLoader().getResource("logging.properties"));


El archivo .log está en su carpeta / workspace.metadata. Estoy usando Eclipse 4.2. Sólo un noob tratando de ayudar a otros noobs.


La causa raíz del problema que tiene el interrogador es que no se está leyendo su archivo logging.properties.
El archivo especificado en java.util.logging.config.file no se lee desde la ruta de clase. En su lugar, se lee desde el sistema de archivos relativo al directorio actual.
Por ejemplo, ejecutando el siguiente comando java -Djava.util.logging.config.file=smclient-logging.properties SMMain leerá smclient-logging.properties del directorio actual. Una vez que se lee el archivo java.util.logging.config.file correcto, los registros se generan como se especifica en el archivo.


La ubicación del archivo de registro se puede controlar a través del archivo logging.properties. Y se puede pasar como parámetro JVM ex: java -Djava.util.logging.config.file=/scratch/user/config/logging.properties

Detalles: https://docs.oracle.com/cd/E23549_01/doc.1111/e14568/handler.htm

Configurando el manejador de archivos

Para enviar registros a un archivo, agregue FileHandler a la propiedad handlers en el archivo logging.properties. Esto habilitará el registro de archivos globalmente.

handlers= java.util.logging.FileHandler

Configure el manejador configurando las siguientes propiedades:

java.util.logging.FileHandler.pattern=<home directory>/logs/oaam.log java.util.logging.FileHandler.limit=50000 java.util.logging.FileHandler.count=1 java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

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 se van a recorrer.

java.util.logging.FileHandler.formatter especifica la clase de formateador java.util.logging que la clase del manejador de archivos usa para formatear los mensajes de registro. SimpleFormatter escribe breves resúmenes "legibles por humanos" de los registros.

Para indicar a java que use este archivo de configuración en lugar de $ JDK_HOME / jre / lib / logging.properties:

java -Djava.util.logging.config.file=/scratch/user/config/logging.properties


Parece que la ubicación por defecto ha cambiado. Para encontrar su archivo de registro, abra la Consola Java con su aplicación. ahí presiona "s". Esto imprime las propiedades del sistema y la implementación donde puede encontrar algo como:

deployment.user.logdir = C:/Users/username/AppData/LocalLow/Sun/Java/Deployment/log

Allí encontrarás tus logfiles.


Si es nulo, la ruta del archivo sería su directorio de inicio de eclipse. Su archivo logging.properties no está borrado por el sistema, por lo que apunte el archivo de propiedades a la ruta completa como se muestra a continuación, luego su archivo de registro se generará en el lugar donde directamente lo prefiera yor. -Djava.util.logging.config.file = D: / keplereclipse / keplerws / NFCInvoicingProject / WebContent / WEB-INF / logging.properties