`
Notebookdong
  • 浏览: 121024 次
社区版块
存档分类
最新评论

web项目添加log4j

阅读更多

在web项目中添加log4j支持,文中使用maven搭建的SpringMVC环境,当然也可以使用其它的环境,这里主要介绍的是log4j的添加,其它的东西大家可以使用自己之前已经做好的web项目也是一样的:

 

1.使用maven添加所需要的jar包,当然也可以自己手动添加:

pom.xml

<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>mavenWeb</groupId>
	<artifactId>mavenweb</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>mavenweb Maven Webapp</name>
	<url>http://maven.apache.org</url>
	
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>3.0.5.RELEASE</spring.version>
		<junit.version>4.8.2</junit.version>
		<netbeans.hint.deploy.server>Tomcat</netbeans.hint.deploy.server>
		<slfv5_common.version>1.0.9-beta</slfv5_common.version>
		<slf4j.version>1.6.6</slf4j.version>
		<log4j.version>1.2.17</log4j.version>  
		<proxool.version>0.9.1</proxool.version> 
		<mysql-client.version>5.1.21</mysql-client.version>
		<memcached-client.version>2.6.6</memcached-client.version>
		<sitemesh.version>2.4.2</sitemesh.version>
		<spring-json.version>1.9.9</spring-json.version>
	</properties>
	
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>3.0.5.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>3.0.5.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-servlet_2.5_spec</artifactId>
			<version>1.2</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
			<scope>compile</scope>
		</dependency>
		
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${slf4j.version}</version>
			<scope>compile</scope>
		</dependency>
		
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
			<scope>compile</scope>
		</dependency>

	</dependencies>

	<build>
		<finalName>mavenweb</finalName>
	</build>

</project>

 完成之后会看到添加了如下jar包:

 

2.编写log4j.xml文件,其它log4j.xml的文件路径在发布到Tomcat的时候是在对应的目录是在E:\apache-tomcat-6.0.35\webapps\mavenweb\WEB-INF\classes中,所以在开发是大家要注意log4j.xml新建的位置:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!-- Appenders -->
	
	<appender name="files" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="${catalina.base}/logs/mytest.log"/>
		<param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n"/>
		</layout>
	</appender>
	
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss SSSS\} %-5p] [%t] %c{3\} - %m%n" />
		</layout>
	</appender>
	
	<!-- Application Loggers -->
	<logger name="org.springframework.samples.mvc">
		<level value="info" />
		<appender-ref ref="files"/>
	</logger>
	
	<logger name="com.zxhz.maventest">
		<level value="info" />
		<appender-ref ref="files"/>
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="info" />
		<appender-ref ref="files"/>
	</logger>
	
	<logger name="org.springframework.beans">
		<level value="info" />
		<appender-ref ref="files"/>
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
		<appender-ref ref="files"/>
	</logger>

	<logger name="org.springframework.http">
		<level value="debug" />
		<appender-ref ref="files"/>
	</logger>

	<logger name="org.springframework.web">
		<level value="debug" />
		<appender-ref ref="files"/>
	</logger>

	<!-- Root Logger -->
	<root>
		<priority value="warn" />
		<appender-ref ref="console" />
	</root>
	
</log4j:configuration>

 这里就不说明每个属性了,需要了解的同学可以去找到一下别的文章。

web.xml文件:

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

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<servlet>
		<servlet-name>maven</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>maven</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 关于web.xml的写法,有一般情况下都会在在web.xml中加上以下代码:

<!--在web.xml中配置log4j的动态加载监听器-->
<context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>classpath:log4j.properties</param-value>
  </context-param>
 <listener>
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

 但在上面的web.xml文件中并没有加入这些代码那是因为如果你的log4j.xml是放在classpath下,log4jConfigLocation是没有必要配置的,因为默认的 路劲就是classpath。spring的log4jConfigListener是用来监听log4j配置的变更的,如果设置了这个 监听器,则以后log4j的配置发生变化时,你不用重新编译打包发布项目。spring会自动加载变更后的 配置文件


maven-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Bean头部 -->
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
             http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd              
             http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

	<!-- 激活@Controller模式 -->
	<mvc:annotation-driven />
	<!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 需要更改 -->
	<context:component-scan base-package="com.zxhz" />

	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix">
			<value>/WEB-INF/jsp/</value>
		</property>
		<property name="suffix">
			<value>.jsp</value>
		</property>
	</bean>
</beans>

 

 

3.在相对应的类中定义Loger以下有两个类以及页面文件:

 

LoginController.java

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class LoginController {
        /***
        * 在这里并没有去加载log4j.xml,也没有在web.xml
        * 文件中设置log4j.xml,这是因为Spring框架默认情况下会自动地去  
        * 找classes目录下面的log4j.xml文件并加载它
        */
	private static Logger log = LoggerFactory.getLogger(LoginController.class);

	@RequestMapping(value = "login")
	public ModelAndView login(HttpServletRequest request,
			HttpServletResponse response, LoginForm command) {
		String username = command.getUsername();
		ModelAndView mv = new ModelAndView("/index/index", "command",
				"LOGIN SUCCESS, " + username);
		log.info("test,test,test,123456789");
		return mv;
	}
}

 

LoginForm.java

public class LoginForm {
	private String username;
	private String password;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
}

 

index.jsp

<html>
<body>
	<%
		request.getRequestDispatcher("/WEB-INF/jsp/login/login.jsp")
				.forward(request, response);
	%>
</body>

</html>

 

WEB-INF/jsp/index/index.jsp 

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>${command}
</body>
</html>

 

WEB-INF/jsp/index/login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<form action="login" method="get">
			<input type="text" name="username"> <input type="submit"
				value="SUBMIT">
		</form>
	</div>
</body>
</html>

 4.在这些都完成后就可以启动服务器在浏览器中访问路径,这时候可以在后台看到输出的log

[2013-03-12 02:20:53 671 INFO ] [http-80-1] zxhz.maventest.LoginController - test,test,test,123456789

并且在Tomcat安装目录下的logs目录中找到对应的mytest.log文件。

 

5.目录结构如下:

 

 

  • 大小: 9.1 KB
  • 大小: 13.6 KB
分享到:
评论

相关推荐

    项目配置文件( spring-mvc.xml spring-mybatis.xml web.xml log4j.properties)

    spring-mvc.xml spring-mybatis.xml web.xml log4j.properties,项目中需要用到的配置文件。直接可用。

    log4j添加日志到数据库和文件中

    使用log4j添加日志记录到数据库和文件中,log4j提供了非常强大的日志记录功能,为了弄这代码我整整研究了两天,访问时直接在地址栏输入日志添加的action就可以,没有写页面。

    log4jwebtracker:Java Web工具在运行时设置应用程序中Log4j追加程序的日志级别,并在运行时读取日志

    Log4j Web跟踪器 Log4j Web Tracker是一个开源Web工具,用于在运行时设置应用程序的配置记录器。 它还具有一个选项卡,该选项卡允许在运行时读取日志或下载日志。 它分布在一个小的.jar文件(log4jwebtracker.jar)...

    spring mvc项目

    spring mvc maven项目,导入IDEA后无报错,需要在IDEA中...该项目使用servlet3.0规范,无web.xml,无spring.xml等配置文件,所有的配置均通过Java Config、注解搞定,项目中还集成了log4j2技术,以及前端html文件等。

    web项目常用jar包及说明.zip

    2.commons-logging-1.1.1.jar(ASF出品的日志包,struts2 2、spring、hibernate框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录) 3.common-annotations.jar(支持注解的包) 4.aspectjrt.jar(支持AOP的包) 5....

    微信开发框架wechat4j

    &gt; * log4j.jar 1.2以上 &gt; * fastjson-1.2.0.jar &gt; * sword-lang-1.2 (https://github.com/sword-org/sword-lang/releases) &gt; * fluent-hc-4.3.6.jar(httpclient依赖) &gt; * httpclient-4.3.6.jar &gt; * ...

    graylog2使用说明(docker)

    wget https://raw.githubusercontent.com/Graylog2/graylog-docker/3.0/config/log4j2.xml //提前准备镜像 docker pull mongo:3 docker pull graylog/graylog:3.0 docker pull elasticsearch:5.6.9 ``` ### docker-...

    web_02_2-会员管理-4-三层开发优化版.zip

    基于Servlet和jsp-的三层开发-会员管理系统--整理总结[2019-202002] 第四个版本-也就是最终完善版(vipPlusPro) ... 工具类--初始化服务器...四、操作日志(log4j || MySQL) log4j mysql 网页分页查看日志 五、

    .net log4的详细用法

    本人开始接触.net 日志,如有不对之处还请多多指教! lLog4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方...l配置Log4Net环境•新建一个WebApplication,添加一个“应用程序配置文件”(App.config

    WEB后台管理基础框架

    14、log4j日志推送到elasticsearch集成 15、thymeleaf自定义标签 16、文件系统(支持nginx、http、ftp、tomcat等方式配置) 17、消息通知(通过netty实时推送) 18、quartz定时任务管理 19、@CheckParam自定义检测...

    XP开发模式:第一个最简单的Web Servlet应用演示例子

    为完成这个例子,需要把log4j.jar文档拷贝到Tomcat 6.0的lib目录下。同时,在使用Ant打包时,需要在打成.war档之后,手动调整jsp文档的位置,也就是需要向压缩档添加 jsp目录,该目录在压缩档与WEB-INF目录同级,...

    SSM教务管理系统(源码+文档+视频+数据库脚本).rar

    数据源:C3P0 日志:log4j 前端框架:Bootstrap 快速上手 1、运行环境和所需工具 编译器:IntelliJ IDEA 项目构建工具:Maven 数据库:Mysql JDK版本:jdk1.8 Tomcat版本:Tomcat8.x 2、初始化项目 在你的Mysql中,...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    基于jsp的通讯录系统

    2、修改totgb/WEB-INF/classes目录下的log4j.properties文件中log4j.appender.file.File为你的log文件存放目录。 3、安装数据库:mysql -u root -p 存放目录\install\totgb.sql 3、修改数据库的连接参数;打开totgb/...

    JFinal所需的Jar

    JFinal 自身对第三方无... 注意,log4j需要相应的配置文件 log4j.properties,否则当log4j-1.2.16.jar 存在 而log4j.properties 不存在时无日志输出。jdk logger 需要的logging.properties文件 也在此目录下提供了

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    淘特JSP留言板 v0.1

    2、修改totgb/WEB-INF/classes目录下的log4j.properties文件中log4j.appender.file.File为你的log文件存放目录。 3、安装数据库:mysql -u root -p 存放目录\install\totgb.sql 3、修改数据库的连接参数;打开totgb/...

    SSM所需JAR包

    slf4j-log4j12-1.7.25.jar spring-aop-4.2.2.RELEASE.jar spring-aspects-4.2.2.RELEASE.jar spring-beans-4.2.2.RELEASE.jar spring-context-4.2.2.RELEASE.jar spring-context-support-4.2.2.RELEASE.jar spring-...

    基于框架的Web开发-mybatisspring.doc

    8.1 spring+mybatis 改造springTransaction工程...Log4j的配置文件还是放在src文件夹下在resources文件夹下创建mybaits-config.xml文件,可以从mybatis工程中拷贝过来修改。在resources文件夹下创建mappers文件夹,

Global site tag (gtag.js) - Google Analytics