Log4j è un framework usato per il logging delle applicazioni. Ha due componenti principali:
- ll file di configurazione, può avere una estensione .xml o .properties. In questo esempio useremo l’estensione .properties.
- La classe Logger, istanziata in ogni classe da loggare
tools:
- Eclipse Mars
- Wildfly 10
- Log4j 1.2.17
Esempio
Dal menù:
File–>New–>Others
Selezionare “Maven Project” e premere il tasto “Next”
Checkare “Create simple project (skip archetype selection)” e premere “Next”
Inserire i seguenti valori:
GroupId: Esempio
ArtifactId: HelloWorldLog4J
Version: 0.0.1-SNAPSHOT
Packaging: war
Premere “Finish”
Nel file pom.xml aggiungere il seguente sorgente:
[xml]
<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”<project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
<modelVersion>4.0.0</modelVersion>
<groupId>Esempio</groupId>
<artifactId>HelloWorldLog4j</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies> <dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency> <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
[/xml]
Creare la classe Prova.java. Selezionare
File–>New–>Other–>Class
e premere “Next”
Inserire i seguenti valori:
Package: com
Name: Prova
premere “Finish”
Dentro Prova.java inserire il seguente codice:
Prova.java
[java]
package com;package com;
import java.io.IOException;
import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
/** * Servlet implementation class Prova */
public class Prova extends HttpServlet {
private static final long serialVersionUID = 1L;
final static Logger log = Logger.getLogger(Prova.class);
/** * Default constructor. */
public Prova() { // TODO Auto-generated constructor stub }
/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub log.info(“ciao info”); log.debug(“ciao debug”); log.trace(“ciao trace”); response.getWriter().append(“Served at: “).append(request.getContextPath()); }
/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }
}
[/java]
Modificare il web.xml aggiungendo le seguenti righe:
web.xml
[xml]
<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://java.sun.com/xml/ns/javaee” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” version=”2.5″>
<display-name>HelloWorldLog4j</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>Prova</display-name>
<servlet-name>Prova</servlet-name>
<servlet-class>com.Prova</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Prova</servlet-name>
<url-pattern>/Prova</url-pattern>
</servlet-mapping>
</web-app>
[/xml]
Creare un file di properties, di nome “log4j.properties“, dentro la cartella resources.
Aggiungere il seguente contenuto nel file appena creato..
log4j.properties
[java]
# Root logger option
log4j.rootLogger=DEBUG, stdout, file
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L – %m%n
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\LIB\\prova.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L – %m%n
[/java]
Cliccare con il tasto destro sul server e selezionare “Add and Remove”
Selezionare il progetto “HelloWorldLog4J” e premere i tasti “Add” e “Finish”
Startare il server e digitare il seguente indirizzo sul browser:
http://localhost:8080/HelloWorldLog4j/Prova
Nella console appariranno le scritte loggate
Stessa cosa nel file di log indicato nella property
log4j.appender.file.File=C:\\LIB\\prova.log