spring mvc集成log4j



spring mvc集成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

# 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
###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-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.stdout.Encoding=UTF-8 
#每天新建一个文件
log4j.appender.stdout=org.apache.log4j.DailyRollingFileAppender

# Redirect log messages to a log file
### 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.file=org.apache.log4j.RollingFileAppender
#outputs to Tomcat home
#日志文件的名称
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-dd HH: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")
public class GeneralController extends BaseController {
private Logger log = LoggerFactory.getLogger(GeneralController.class);
@Autowired
private UserService userService;

@RequestMapping(value = "hello")
public String hello(@RequestParam(value = "name") String name, Model model) {
log.info("请求来了");
User user = userService.getUserByName(name);

model.addAttribute("hello", "HH");
if (null == user) {
model.addAttribute("userName", "user is null");
} else {

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

return "/general/hello";

}

}

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











猜你喜欢

转载自aybaylyn.iteye.com/blog/2204205