In Java Logging APIs or java.util.logging
, we use system property java.util.logging.config.file
to define the location of the logging.properties
file.
Note
1. Loads logging.properties at runtime
In the command line, we can use -D
option to pass the path of logging.properties
via the system property java.util.logging.config.file
.
Terminal
$ java -jar -Djava.util.logging.config.file=/path/logging.properties server.jar
$ java -Djava.util.logging.config.file=/path/logging.properties runServer
2. Loads logging.properties from the classpath
Normally, we put the logging.properties
at the src/main/resources
, and project compile or build will copy it to the root of the classpath. And we can use LogManager
or System.setProperty
to load the logging.properties
programmatically.
2.1 LogManager
The below example uses LogManager
to load a logging.properties
file from the classpath.
LoadLogPropertiesFile1.java
package com.favtuts; import java.io.IOException; import java.io.InputStream; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; public class LoadLogPropertiesFile1 { static { // must set before the Logger // loads logging.properties from the classpath try (InputStream is = LoadLogPropertiesFile.class.getClassLoader(). getResourceAsStream("logging.properties")) { LogManager.getLogManager().readConfiguration(is); } catch (IOException e) { e.printStackTrace(); } } private static Logger logger = Logger.getLogger(LoadLogPropertiesFile.class.getName()); public static void main(String[] args) { logger.info("This is level info logging"); } }
2.2 System.setProperty(“java.util.logging.config.file”)
The below example uses System.setProperty("java.util.logging.config.file")
to load a logging.properties
file from the classpath.
LoadLogPropertiesFile2.java
package com.favtuts; import java.io.IOException; import java.io.InputStream; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; public class LoadLogPropertiesFile2 { static { // must set before the Logger // loads logging.properties from the classpath String path = LoadLogPropertiesFile.class .getClassLoader().getResource("logging.properties").getFile(); System.setProperty("java.util.logging.config.file", path); } private static Logger logger = Logger.getLogger(LoadLogPropertiesFile.class.getName()); public static void main(String[] args) { logger.info("This is level info logging"); } }
3. Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-logging/jul