mkyong logger example ejemplo java log4j

java - logger - Cambiar la ubicación de log4j.properties



log4j2 ejemplo (6)

Consulte este ejemplo tomado de: http://www.dzone.com/tutorials/java/log4j/sample-log4j-properties-file-configuration-1.html

import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class HelloWorld { static final Logger logger = Logger.getLogger(HelloWorld.class); static final String path = "src/resources/log4j.properties"; public static void main(String[] args) { PropertyConfigurator.configure(path); logger.debug("Sample debug message"); logger.info("Sample info message"); logger.warn("Sample warn message"); logger.error("Sample error message"); logger.fatal("Sample fatal message"); } }

Para cambiar los niveles del registrador: Logger.getRootLogger().setLevel(Level.INFO);

Quiero poner todos mis archivos de configuración en una subcarpeta /config de mi directorio de aplicaciones. Log4j espera el archivo log4j.properties en la carpeta raíz de mi aplicación. ¿Hay alguna manera de decirle a log4j dónde buscar el archivo de propiedades?


En Eclipse puedes establecer un argumento VM para:

-Dlog4j.configuration=file:///${workspace_loc:/MyProject/log4j-full-debug.properties}


Esta es mi clase: la ruta está bien y las propiedades están cargadas.

package com.fiserv.dl.idp.logging; import java.io.File; import java.io.FileInputStream; import java.util.MissingResourceException; import java.util.Properties; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class LoggingCapsule { private static Logger logger = Logger.getLogger(LoggingCapsule.class); public static void info(String message) { try { String configDir = System.getProperty("config.path"); if (configDir == null) { throw new MissingResourceException("System property: config.path not set", "", ""); } Properties properties = new Properties(); properties.load(new FileInputStream(configDir + File.separator + "log4j" + ".properties")); PropertyConfigurator.configure(properties); } catch (Exception e) { e.printStackTrace(); } logger.info(message); } public static void error(String message){ System.out.println(message); } }


Puede usar PropertyConfigurator para cargar su log4j.properties donde quiera que esté ubicado en el disco.

Ejemplo:

Logger logger = Logger.getLogger(this.getClass()); String log4JPropertyFile = "C:/this/is/my/config/path/log4j.properties"; Properties p = new Properties(); try { p.load(new FileInputStream(log4JPropertyFile)); PropertyConfigurator.configure(p); logger.info("Wow! I''m configured!"); } catch (IOException e) { //DAMN! I''m not.... }

Si tiene una configuración XML Log4J, use DOMConfigurator en DOMConfigurator lugar.


Sí, defina la propiedad log4j.configuration

java -Dlog4j.configuration=file:/path/to/log4j.properties myApp

Tenga en cuenta que ese valor de propiedad debe ser una URL.

Para obtener más información, lea la sección "Procedimiento de inicialización predeterminado" en el manual de Log4j .