maven整合slf4j

1、首先导入依赖

<!--slf4j begin-->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.2</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.2</version>
    </dependency>
    <!--slf4j end-->
View Code

2、配置log4j的配置文件,路径:resources/log4j.properties

 1 #父级日志,这里仅配置输出到控制台,所有子级日志会归并到父级日志中输出
 2 log4j.rootLogger = INFO,console
 3 #输出到控制台
 4 log4j.appender.console=org.apache.log4j.ConsoleAppender
 5 #日志风格规则
 6 log4j.appender.console.layout=org.apache.log4j.PatternLayout
 7 #自定义日志格式
 8 log4j.appender.console.layout.ConversionPattern=%5p:%d-%m%n
 9 
10 #子级日志:user,只记录info级别以上的日志,下面配置输入日志到文件
11 log4j.logger.user=INFO,user
12 #设置每天产生新的日志
13 log4j.appender.user=org.apache.log4j.DailyRollingFileAppender
14 #设定每个多长时间产生一个新的日志文件,精确到分钟则每分钟产生一个日志文件,并按照该时间格式添加到文件名后缀
15 log4j.appender.user.DatePattern='_'yyyy-MM-dd-HH-mm'.log'
16 #日志存放的路径,相对路径默认从main开始,一般用直接路径
17 log4j.appender.user.File=user.log
18 #日志风格规则
19 log4j.appender.user.layout=org.apache.log4j.PatternLayout
20 #自定义日志格式
21 log4j.appender.user.layout.ConversionPattern=%5p:%d-%m%n
22 #日志编码
23 log4j.appender.user.Encoding=UTF-8
24 #该子日志是否归并到父级,如果归并,则该日志会输出一份到父级日志输出的地方
25 #log4j.additivity.user=false
26 
27 #子级日志:login 只记录info级别以上的日志,下面配置输入日志到文件
28 log4j.logger.login=INFO,login
29 #设置每天产生新的日志
30 log4j.appender.login=org.apache.log4j.DailyRollingFileAppender
31 #设定每个多长时间产生一个新的日志文件,精确到分钟则每分钟产生一个日志文件,并按照该时间格式添加到文件名后缀
32 log4j.appender.login.DatePattern='_'yyyy-MM-dd-HH-mm'.log'
33 #日志存放的路径,相对路径默认从main开始,一般用直接路径
34 log4j.appender.login.File=login.log
35 #日志风格规则
36 log4j.appender.login.layout=org.apache.log4j.PatternLayout
37 #自定义日志格式
38 log4j.appender.login.layout.ConversionPattern=%5p:%d-%m%n
39 #日志编码
40 log4j.appender.login.Encoding=UTF-8
41 #该子日志是否归并到父级,如果归并,则该日志会输出一份到父级日志输出的地方
42 #log4j.additivity.user=false
43 
44 #输出到日志文件,当文件大小达到时新建新的日志文件
45 #log4j.appender.File=org.apache.log4j.RollingFileAppender
46 #文件路径
47 #log4j.appender.File.File=${project}/WEB-INF/logs/app.log
48 #旧文件后缀
49 #log4j.appender.File.DatePattern=_yyyyMMdd'.log'
50 #文件的最大值
51 #log4j.appender.File.MaxFileSize=10MB
52 #设定打印的日志级别
53 #log4j.appender.File.Threshold=ALL
54 #log4j.appender.File.layout=org.apache.log4j.PatternLayout
55 #log4j.appender.File.layout.ConversionPattern=[%p][%d][%c]%m%n

3、在java代码内获取子级的logger对象,打印日志

package cn.jiaming.chen.controller;
import cn.jiaming.chen.requestPojo.LoginControllerRequest;
import cn.jiaming.chen.responsePojo.LoginControllerResponse;
import cn.jiaming.chen.service.LoginService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("login/")
public class LoginController {
@Autowired
private LoginService loginService;
private static final Logger logger = LoggerFactory.getLogger("login");  //该处填入配置文件中配置的子级日志名称
@ResponseBody
@RequestMapping("login")
public LoginControllerResponse login(@RequestBody LoginControllerRequest request){
logger.info("type=login`userId={}",request.getId());
LoginControllerResponse response = null;
try{
response = loginService.login(request);
logger.info("type=login`userId={}`result=true",request.getId());
}catch (Exception e){
response = new LoginControllerResponse(-1,e.getMessage());
logger.error("type=login`userId={}`result={}",request.getId(),e.getMessage());
}
return response;
}
}

4、启动测试

posted on 2018-06-05 15:56  javaGreenHand。。。  阅读(81)  评论(0)    收藏  举报