StringBoot—mybatis—log4j(三)

所有代码都在前几期里有 https://blog.csdn.net/tangcv/article/category/7771327

这次的内容是 StringBoot整合log4j2,日志配置

log4j2的官网地址

log4j2的API

log4j2的简介

  Log4j使用如下图所示的类。

这里写图片描述

  使用Log4j 2 API的应用程序将请求日志管理器中带有特定名称的日志记录器。LogManager将定位适当的日志上下文,然后从它获得日志记录器。这使得新的Log4j 2.0版本有了大幅的性能提升、新的插件系统,以及配置设置方面的很多改善。Log4j 1.x 在高并发情况下出现死锁导致cpu使用率异常飙升,而Log4j2.0基于LMAX Disruptor的异步日志在多线程环境下性能会远远优于Log4j 1.x和logback。

开始

1.目录结构

2.添加pom依赖

<!-- log4j日志 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.21</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.21</version>
		</dependency>

3.新建log4j.properties配置文件

### 设置###
log4j.rootLogger = debug,CONSOLE,D,I,E
#log4j.rootLogger = info,I,E

### 输出信息到控制抬 ###
#log4j.appender.stdout = org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target = System.out
#log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
##log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %p %C.%M(%L) : %m%n

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} -%-4r %-5p  %x - %m%n
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

### 输出DEBUG 级别以上的日志到 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File =../logs/bootmy/debug/debug
log4j.appender.D.DatePattern=yyyy-MM-dd'.log'
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %p %C.%M(%L) : %m%n

### 输出DEBUG 级别以上的日志###
log4j.appender.I = org.apache.log4j.DailyRollingFileAppender
log4j.appender.I.File =../logs/bootmy/info/info
log4j.appender.I.DatePattern=yyyy-MM-dd'.log'
log4j.appender.I.Append = true
log4j.appender.I.Threshold = INFO
log4j.appender.I.layout = org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %p %C.%M(%L) : %m%n

### 输出ERROR 级别以上的日志 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =../logs/bootmy/error/error
log4j.appender.E.DatePattern=yyyy-MM-dd'.log'
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %p %C.%M(%L) : %m%n


### 排除第三方包日志 ###
log4j.logger.org.apache=FATAL
log4j.logger.org.hibernate=FATAL
log4j.logger.org.springframework=FATAL
log4j.logger.org.displaytag=FATAL
log4j.logger.org.hibernate.SQL=FATAL
log4j.logger.org.hibernate.engine.QueryParameters=FATAL
log4j.logger.org.hibernate.engine.query=FATAL
log4j.logger.org.hibernate.type=FATAL
log4j.logger.org.mortbay=FATAL
log4j.logger.org.dbunit=FATAL

### #打印sql语句 ###
log4j.logger.com.ibatis=debug  
log4j.logger.java.sql=debug  
log4j.logger.mapper: DEBUG

4.application.properties文件中加入logging.level."mapper所对应的目录" = debug

配置日志打印SQL代码

#日志显示SQL
logging.level.com.bootmy.mapper = debug

5.Controller方法中调用日志方法

private static final Logger log = Logger.getLogger(LoginController.class);

引用import org.apache.log4j.Logger;

部分代码

@RequestMapping("/Login")
@Controller
public class LoginController {

	private static final Logger log = Logger.getLogger(LoginController.class);

	@Resource
	public DictMapper dictMapper;
	@Resource
	DictService dictService;


	/**
	 * 直接使用Mapper
	 * @return
	 */
	@RequestMapping(value = "/index", produces = "text/html")
	public String routerListView() {
		try {
		Dict dict = dictMapper.selectByPrimaryKey(Long.valueOf(1));
		System.out.println(dict.getId());
		log.info("/Login/index方法   -- LoginController ------- id="+dict.getId());
		List<Dict> list = new ArrayList<>();
		list.get(2).getId();//异常
		} catch (Exception e) {
			log.error("异常具体信息"+e.getMessage(), e);
		}
		return "index";
	}
}

6.启动项目访问http://127.0.0.1:8079/Login/index方法

控制台打印内容为:

7.查看日志文件

在配置目录下生成对应的文件目录

 

对应的日志内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网寻星

打赏老板,留下需求,为你而码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值