This tutorial shows logging in Java application using the tinylog lightweight logging framework. The tinylog is fast; read this benchmark. The tinylog documentation is very detail and organized, make sure to check it for a detailed explanation.
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. 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.
The Java logging APIs (java.util.logging) default loads logging.properties in the $JAVA_HOME/jre/lib/ (Java 8 and before); for Java 9 and above, the logging.properties file moved to $JAVA_HOME/conf.
This tutorial shows logging using the Java built-in logging APIs in the java.util.logging package. The java.util.logging is bundled with the Java since JDK 1.4. This Java logging APIs or java.util.logging is part of the Java JDK, suitable for the simple project which required only basic logging features like logs to console or a file. For more advanced logging features like log file rotation, sending email for error logs, send logs to a database, etc. There are many third-party logging frameworks like the logging facade SLF4j, or logging framework like Logback and Apache Log4j 2.
A simple log4j 2 hello world example.Tested with: Log4j 2.11.2, Maven 3, Java 8. Note: Apache Log4j 2, the fastest Java logging framework, provides significant improvements over its predecessor, Log4j 1.x.
Review a simple Java application and log a message via Logback. Run above program, the Logback will logs a message twice? This is caused by the Appenders accumulate. To fix it, add a additivity=”false” to the application logger
The logback will output its own status (INFO or WARN) at the start of the program, it’s really annoying! To fix it, add a NopStatusListener in logback.xml