spring mvc集成log4j

springmvc集成log4j,环境:maven

首先jar引入:

<!--日志-->

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.17</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>1.7.12</version>

</dependency>

然后配置文件:

src\main\resources\META-INF\configuration\log4j.properties

#Rootloggeroption

###根配置

log4j.rootLogger=DEBUG,stdout,file

#Redirectlogmessagestoconsole

###输出到控制台

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

###stdout的输出布局。

####其中log4j提供4种布局.org.apache.log4j.HTMLLayout(以HTML表格形式布局)

##org.apache.log4j.PatternLayout(可以灵活地指定布局模式),

##org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

##org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

##输出的时间格式

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss}%-5p%c{1}:%L-%m%n

log4j.appender.stdout.Encoding=UTF-8

#每天新建一个文件

log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender

#Redirectlogmessagestoalogfile

###输出到文件RollingFileAppender的扩展,可以提供一种日志的备份功能。

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

#outputstoTomcathome

#日志文件的名称

log4j.appender.file.File=${catalina.home}/logs/myapp.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-ddHH:mm:ss}%-5p%c{1}:%L-%m%n

###在实际的项目开发中,很可能遇到所引用的包用Log4j来记录日志,比如Hibernate。那么在这里你可以很容易的控制这个包如何记录日志。比如在上面的配置文件中加一行:

###log4j.logger.org.hibernate=fatal

###那么所有org.hibernate包下面的类就只会显示很少的信息,因为fatal的级别最高啊。

然后web.xml中的配置:

<context-param>

<param-name>log4jConfigLocation</param-name>

<param-value>WEB-INF/classes/META-INF/configuration/log4j.properties</param-value><!--log4j配置文件路径-->

</context-param>

<listener>

<!--容器初始化(销毁)时开启(关闭)Log4j-->

<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

</listener>

然后在java代码中使用:

@Controller

@RequestMapping("/general")

publicclassGeneralControllerextendsBaseController{

privateLoggerlog=LoggerFactory.getLogger(GeneralController.class);

@Autowired

privateUserServiceuserService;

@RequestMapping(value="hello")

publicStringhello(@RequestParam(value="name")Stringname,Modelmodel){

log.info("请求来了");

Useruser=userService.getUserByName(name);

model.addAttribute("hello","HH");

if(null==user){

model.addAttribute("userName","userisnull");

}else{

model.addAttribute("userName",user.getName());

}

return"/general/hello";

}

}

在url地址栏中请求,即可看到控制台上的日志输出,这里的输出比较全面,会输出sql,controller请求等等具体信息。

相关推荐