Java >> Java tutorial >  >> Tag >> Log4j

Struts 2 og Log4J Eksempel

I dette eksempel vil vi lære, hvordan man integrerer Struts2-applikationen med Log4j logningsramme. Apache Struts er en gratis, open source, MVC-ramme til at skabe elegante, moderne Java-webapplikationer.

Det foretrækker konvention frem for konfiguration, kan udvides ved hjælp af en plugin-arkitektur og leveres med plugins til at understøtte REST, AJAX og JSON.

Log4J er Apaches populære logningsramme.

Værktøjer og teknologier brugt i dette eksempel er java 1.7, Maven, Intellij, Log4j-1.2.16, Struts-2.3.15.1, Tomcat-7.0.54

1. Projektstruktur

Nedenfor er projektstrukturen brugt i dette eksempel.

Figur 1. Projektstruktur

Struts2ExampleAction er Struts Action-klassen. Ressourcemappen indeholder Log4J-egenskabsfilen (log4j.properties ) og Struts-konfigurationsfilen (struts.xml ).

2. Maven-afhængighed

Nedenfor er pom-filen, som definerer afhængighederne for Struts 2 og Log4J.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
  <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>com.javacodegeeks</groupId>
  <artifactId>struts2-log4j</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.3.15.1</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.16</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
    <finalName>${project.artifactId}</finalName>
  </build>
</project>

3. web.xml

Nedenfor i web.xml fil.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 version="3.0">

 <filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 </filter>

 <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>

</web-app>

4. index.jsp

Nedenfor er filen index.jsp, som brugeren vil blive omdirigeret til.

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
   <title>Java Code Geek Strut2 Log4J example</title>
 </head>
 <body>
   <h1>Java Code Geeks - Welcome to Struts 2 Log4j Example</h1>
 </body>
</html>

5. Konfigurationsfil

Nedenfor er de to konfigurationsfiler, der bruges til dette eksempel

5.1 Struts Configuration

Nedenfor er struts.xml-konfigurationsfilen

struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
  <constant name="struts.convention.result.path" value="/"></constant>
  <package name="example" namespace="/" extends="struts-default">
    <action name="example" class="com.javacodegeeks.Struts2ExampleAction">
      <result name="success">/index.jsp</result>
    </action>
  </package>
</struts>

5.2 Log4j-konfiguration

Nedenfor er filen log4j.properties

log4j.properties

# Root logger option
log4j.rootLogger=INFO, file

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=C:\\javacodegeeks\\struts2\\logger.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
 

6. Struts Action-fil

Nedenfor er Struts handlingsfil Struts2ExampleAction.java

package com.javacodegeeks;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.log4j.Logger;

/**
 * JavaCodeGeeks Example class.
 */
public class Struts2ExampleAction extends ActionSupport {

 private static final long serialVersionUID = 1L;

 private static final Logger LOGGER = Logger.getLogger(Struts2ExampleAction.class);

 /**
 * {@inheritDoc}
 * @see com.opensymphony.xwork2.Action
 */
 public String execute(){
   LOGGER.debug("Inside Struts2ExampleAction.execute() method");
   LOGGER.debug("JavaCodeGeeks Struts 2 Example");
   return SUCCESS;
 }
}

7. Output

Kør tomcat og implementer applikationen. Når applikationen kører, skal du gå til URL 'localhost:8081/struts2-log4j/example'. Min tomcat kører på 8081 port. Brug porten, uanset hvor din tomcat løber.

Figur 2. Output

Da vi bruger filtillægget, vil logmeddelelserne gå i den fil, der er defineret i filen log4j.properties:C:\\javacodegeeks\\struts2\\logger.log

2015-02-08 21:55:11 DEBUG ExampleAction:16 - Inside Struts2ExampleAction.execute() method
2015-02-08 21:55:11 DEBUG ExampleAction:16 - JavaCodeGeeks Struts 2 Example

8. Download kildekoden

Dette var et eksempel på Struts 2 og Log4J Integration.logging

Java tag