摘要
在本教程中,我们将向您展示如何使用log4j框架在Spring MVC Web应用程序中进行日志记录。
在本教程中,我们将向您展示如何使用log4j框架在Spring MVC Web应用程序中进行日志记录。
使用的技术和工具:
Log4j 1.2.17
春季4.1.6.RELEASE
Maven 3
雄猫6
Eclipse Kepler 4.3
要集成log4j,您需要做的就是:
提出了log4j.jar在项目类路径中。
在项目根类路径中创建一个log4j.properties或log4j.xml文件(如果您遵循Maven标准目录结构,则应该是该resources文件夹)。
检查最终的项目结构。
声明以下依赖项:
<properties> <spring.version>4.1.6.RELEASE</spring.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- Log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> </dependencies>复制
创建一个log4j.properties文件,并将其放入resources。文件夹,参考上面的项目目录结构。
# Root logger optionlog4j.rootLogger=DEBUG, stdout, file# Redirect log messages to consolelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n# Redirect log messages to a log filelog4j.appender.file=org.apache.log4j.RollingFileAppender#outputs to Tomcat homelog4j.appender.file.File=${catalina.home}/logs/myapp.loglog4j.appender.file.MaxFileSize=5MBlog4j.appender.file.MaxBackupIndex=10log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n复制
一个简单的控制器,用于返回欢迎页面。此外,它还向您展示了如何使用log4j进行日志记录。
package com.mkyong.common.controller;import org.apache.log4j.Logger;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class WelcomeController { private static final Logger logger = Logger.getLogger(WelcomeController.class); @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView getWelcome() { //logs debug message if(logger.isDebugEnabled()){ logger.debug("getWelcome is executed!"); } //logs exception logger.error("This is Error message", new Exception("Testing")); ModelAndView model = new ModelAndView("welcome"); model.addObject("msg", "Hello Spring MVC + Log4j"); return model; }}复制
5.1下载源代码,并使用嵌入式Jetty容器运行Web应用程序。
$ mvn jetty:run复制
访问URL:http:// localhost:8080 / spring-mvc-log4j /
5.2所有日志消息都将显示在控制台中。
# Redirect log messages to consolelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n复制
2015-06-19 14:10:35 DEBUG WelcomeController:19 - getWelcome is executed!2015-06-19 14:10:35 ERROR WelcomeController:23 - This is Error messagejava.lang.Exception: Testing at com.mkyong.common.controller.WelcomeController.getWelcome(WelcomeController.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606)复制