您的位置:首页 > 编程语言 > Java开发

Java日志记录,log4j的使用

2018-01-09 18:00 399 查看
1.修改pom.xml文件,使用Maven导入jar包

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

2.添加 log4j.properties 配置文件,并进行一些配置

###设置日志输出级别
log4j.rootLogger=info,console,infofile,warnfile,errorfile

###输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
#Threshold:指定日志消息的输出最低层次。
log4j.appender.console.Threshold=INFO
#ImmediateFlush:默认值是true,意谓着所有的消息都会被立即输出。
log4j.appender.console.ImmediateFlush=true
#Target:默认情况下是:System.out,指定输出控制台
log4j.appender.console.Target=System.out
#layout:输出样式
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

###输出到文件(文件大小到达指定尺寸的时候产生一个新的文件)
log4j.appender.infofile=org.apache.log4j.RollingFileAppender
#Threshold:指定日志消息的输出最低层次。
log4j.appender.infofile.Threshold=INFO
#ImmediateFlush:默认值是true,意味着所有的消息都会被立即输出。
log4j.appender.infofile.ImmediateFlush=true
#File:指定消息输出到mylog.log文件。
log4j.appender.infofile.File=e\:\\ssm-logs\\info-log.log
#Append:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
log4j.appender.infofile.Append=true
#MaxFileSize: 后缀可以是KB, MB或者是 GB.在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logs/applog.log.1文件。
log4j.appender.infofile.MaxFileSize=10MB
#MaxBackupIndex:指定可以产生的滚动文件的最大数。
log4j.appender.infofile.MaxBackupIndex=20
#layout:输出样式
log4j.appender.infofile.layout=org.apache.log4j.PatternLayout
log4j.appender.infofile.layout.ConversionPattern =  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

###输出到文件(文件大小到达指定尺寸的时候产生一个新的文件)
log4j.appender.warnfile=org.apache.log4j.RollingFileAppender
#Threshold:指定日志消息的输出最低层次。
log4j.appender.warnfile.Threshold=WARN
#ImmediateFlush:默认值是true,意味着所有的消息都会被立即输出。
log4j.appender.warnfile.ImmediateFlush=true
#File:指定消息输出到mylog.log文件。
log4j.appender.warnfile.File=e\:\\ssm-logs\\warn-log.log
#Append:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
log4j.appender.warnfile.Append=true
#MaxFileSize: 后缀可以是KB, MB或者是 GB.在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logs/applog.log.1文件。
log4j.appender.warnfile.MaxFileSize=10MB
#MaxBackupIndex:指定可以产生的滚动文件的最大数。
log4j.appender.warnfile.MaxBackupIndex=10
#layout:输出样式
log4j.appender.warnfile.layout=org.apache.log4j.PatternLayout
log4j.appender.warnfile.layout.ConversionPattern =  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

###输出到文件(文件大小到达指定尺寸的时候产生一个新的文件)
log4j.appender.errorfile=org.apache.log4j.RollingFileAppender
#Threshold:指定日志消息的输出最低层次。
log4j.appender.errorfile.Threshold=ERROR
#ImmediateFlush:默认值是true,意味着所有的消息都会被立即输出。
log4j.appender.errorfile.ImmediateFlush=true
#File:指定消息输出到mylog.log文件。
log4j.appender.errorfile.File=e\:\\ssm-logs\\error-log.log
#Append:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
log4j.appender.errorfile.Append=true
#MaxFileSize: 后缀可以是KB, MB或者是 GB.在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logs/applog.log.1文件。
log4j.appender.errorfile.MaxFileSize=10MB
#MaxBackupIndex:指定可以产生的滚动文件的最大数。
log4j.appender.errorfile.MaxBackupIndex=5
#layout:输出样式
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern =  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

3.在类中创建日志对象并在方法中使用
public class UserController extends BaseController {

private static final long serialVersionUID = 1L;

// 记录日志
public static Logger log = Logger.getLogger(UserController.class);

@Autowired
private UserService userService;

/**
* 用户登录
*
* @param user1
* @param request
* @return
*/
@RequestMapping("/login")
public String login(User user1, HttpServletRequest request) {
User user = userService.login(user1.getCode(), user1.getPassword());
if (user != null) {
log.info(user.getCode() + "登录成功!");
// 下面的消息将被输出
log.info("this is an info");
log.warn("this is a warn");
log.error("this is an error");
log.fatal("this is a fatal");
// System.out.println(user.getCode() + "登录成功!");
request.getSession().setAttribute("user", user);
request.setAttribute("msg", "登陆成功!");
Integer roleId = user.getRoleId();
if (roleId == 1) {
return "views/admin";
} else if (roleId == 2) {
return "views/login";
} else if (roleId == 3) {
return "views/login";
} else {
return "index";
}
} else {
request.setAttribute("msg", "用户名或密码错误!");
return "index";
}
}

@RequestMapping("/get")
public String get(HttpServletRequest request) {
// User user = userService.get();
// request.setAttribute("user", user);
return "views/user/user-list";
}
}

4.不同的日志级别就会保存在不同的文件中

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: