Logování pomocí log4j

Nejdříve je potřeba přidat knihovnu log4j do pom.xml

<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.17</version>
</dependency>

Pak si vytvoříme třídy, které budeme používat a ze kterých budeme logovat.

MyLog4j.java

import org.apache.log4j.Logger;

public class MyLog4j {

	private static Logger logger = Logger.getLogger(MyLog4j.class);

	public void log() {
		logger.info("logging using org.apache.log4j.Logger");
	}
}

App.java

public class App {
	public static void main(String[] args) {
		MyLog4j myLog4j = new MyLog4j();
		myLog4j.log();
	}
}

Projekt se zkompiluje a jde spustit, ale místo očekávaných informací se v konzoli zobrazí varování.

log4j:WARN No appenders could be found for logger (cz.vitfo.logging.MyLog4j).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Pro správné fungování je třeba ještě v src/main/resources vytvořit soubor log4j.properties a v něm vytvořit konfiguraci appenderu.

# Root logger option
log4j.rootLogger=DEBUG, console

# Redirect log messages to console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t] %l - %m%n

Po spuštění bude výpis v konzoli vypadat následovně.

2017-06-20 17:27:20,021 INFO  [main] cz.vitfo.logging.MyLog4j.log(MyLog4j.java:12) - logging using org.apache.log4j.Logger

Použité značky v log4j.properties znamenají toto.

% prefix před konverzním znakem
d datum logované události
p priorita logovavné události
t název vlákna
l místo, kde došlo k logování
m logovaná zpráva
n určení oddělovače rádků

Zdroje:

Napsat komentář