1. 整合Logback,滚动记录+多文件

简介: 本文介绍如何整合Logback实现日志的滚动记录与多文件输出,通过配置logback-spring.xml实现不同级别、模块的日志分离存储,并结合代码示例展示实际应用方法,提升项目日志管理效率。

1. 整合Logback,滚动记录+多文件

1.logback-spring.xml

XML

复制代码

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

<?xml version="1.0" encoding="UTF-8"?>

<appender-ref ref="JOB_FILE"/>

</logger>

<!--错误-->

<logger name="ERROR_LOG" additivity="${ADDITIVITY}">

<level value="ERROR"/>

<appender-ref ref="ERROR_FILE"/>

</logger>

<!--请求参数-->

<logger name="INFO_LOG" additivity="${ADDITIVITY}">

<level value="INFO"/>

<appender-ref ref="INFO_FILE"/>

</logger>

<!--请求参数-->

<logger name="REQUEST_PARAM_LOG" additivity="${ADDITIVITY}">

<level value="INFO"/>

<appender-ref ref="REQUEST_PARAM_FILE"/>

</logger>

<!--sql日志输出设置-->

<logger name="cn.zhicall.web.dao" additivity="${ADDITIVITY}">

<level value="DEBUG"/>

<appender-ref ref="SQL_FILE"/>

</logger>

<!--第三方日志输出配置-->

<logger name="java.sql.Connection" additivity="${ADDITIVITY}">

<level value="DEBUG"/>

<appender-ref ref="SQL_FILE"/>

</logger>

<logger name="java.sql.Statement" additivity="${ADDITIVITY}">

<level value="INFO"/>

<appender-ref ref="SQL_FILE"/>

</logger>

<logger name="java.sql.PreparedStatement" additivity="${ADDITIVITY}">

<level value="DEBUG"/>

<appender-ref ref="SQL_FILE"/>

</logger>

<logger name="com.alibaba.druid" additivity="${ADDITIVITY}">

<level value="DEBUG"/>

<appender-ref ref="SQL_FILE"/>

</logger>

<logger name="java.sql.ResultSet" additivity="${ADDITIVITY}">

<level value="INFO" />

<appender-ref ref="SQL_FILE" />

</logger>

<!-- spring的日志输入设置 -->

<logger name="org.springframework" additivity="${ADDITIVITY}">

<level value="INFO"/>

<appender-ref ref="INFO_FILE"/>

</logger>

<logger name="org.mybatis.spring.mapper" additivity="${ADDITIVITY}">

<level value="INFO"/>

<appender-ref ref="INFO_FILE"/>

</logger>

<!-- MyBatis日志输出设置 -->

<logger name="org.apache.ibatis" level="DEBUG" additivity="${ADDITIVITY}">

<level value="INFO"/>

<appender-ref ref="SQL_FILE"/>

</logger>

<logger name="org.apache.ibatis.io.ResolverUtil" additivity="${ADDITIVITY}">

<level value="INFO"/>

<appender-ref ref="SQL_FILE"/>

</logger>


<root level="debug">

<appender-ref ref="CONSOLE" />

</root>

</configuration>

2.使用示例

Java

运行代码复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

package cn.test.web.controller.im;


import com.zhicall.framework.core.common.utils.log.LogProxy;

import org.slf4j.Logger;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.web.bind.annotation.*;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;


import java.util.concurrent.TimeUnit;


/**

* @author Herb

* @create 2020-04-26 13:05

**/

@RestController

@RequestMapping("/test")

public class TestController {


private Logger logger = LogProxy.getLogger("INFO_LOG");

private Logger logger2 = LogProxy.getLogger("ERROR_LOG");


   @Autowired

private ImPlatformDoctorService imPlatformDoctorService;


   @Autowired

protected RedisTemplate redisTemplate;


   @GetMapping("/getuser")

public void getuser() {

logger.info("进入getUser(INFO_LOG-INFO)");

logger.error("进入getUser(INFO_LOG-ERROR)");

logger2.error("进入getUser(ERROR_LOG-ERROR)");

imPlatformDoctorService.queryDoctorConfig(10407L, "1");

}


}

相关文章
|
2天前
|
消息中间件 运维 物联网
语音通知
语音通知服务适用于科技公司服务器或物联网设备异常时的告警通知。通过语音电话形式,向处理人播报预设模板内容,支持变量替换实现个性化提醒。需开通语音服务并申请资质、话术、号码及模板,可通过API发起呼叫并查询记录,支持主动查询与消息回执两种结果获取方式,提升运维响应效率。
语音通知
|
1天前
|
项目管理 开发者
业务架构图
业务架构图是梳理业务层级与关系的工具,通过分层、分模块、分功能,抽象出业务核心结构,明确各部分职责与协作,服务于客户理解与系统开发,是连接业务与技术的重要桥梁。
Day07
简介:本文讲解CAP与BASE理论核心要点,阐述分布式系统中一致性、可用性与分区容错性的权衡,解析Seata AT模式的执行流程,并探讨MQ消息防丢失、重复消费及积压处理等关键问题。
Day07
|
1天前
|
运维 Devops 开发工具
生产环境缺陷管理
针对大型团队多分支开发中bug管理难题,本文介绍基于go-git实现的分布式工具git-poison,通过“投毒-解药-银针”机制,实现bug的自动化追溯、发布卡点与影响范围精准识别,有效避免人为疏漏导致的生产事故,提升缺陷管理效率与系统稳定性。
生产环境缺陷管理
|
1天前
|
Dubbo Java 应用服务中间件
Day02
Day02:掌握Spring Cloud Gateway原理,基于Netty实现非阻塞请求转发;项目采用OpenFeign进行远程调用;深入JVM模型、垃圾回收、类加载及调优。
Day02
|
1天前
|
负载均衡 Dubbo 应用服务中间件
Day01
本文介绍微服务架构的适用场景及技术选型,对比单体与微服务优劣,详解Nacos与Eureka注册中心的心跳机制、服务治理差异,并涵盖常见负载均衡算法及SpringCloud Alibaba常用组件实践。
 Day01
|
1天前
|
存储 安全 算法
第一章 Java基础
本章系统讲解Java基础核心知识,涵盖重载与重写、==与equals、String三兄弟区别、异常体系、集合类原理(如HashMap结构与扩容)、线程并发(ThreadLocal、锁机制)、JVM内存模型、Lambda表达式、反射泛型及Tomcat优化等内容,深入浅出,助力夯实Java基础。
第一章 Java基础
|
1天前
|
存储 缓存 Java
自定义注解
本文介绍Java自定义注解的实现原理与应用,结合Spring AOP 和过滤器实现日志、权限控制及登录验证,涵盖注解定义、@Target、@Retention等核心语法,并通过代码示例展示实际使用流程。
 自定义注解
|
1天前
|
JSON 安全 Java
2.OAuth2.0实战案例
本文详细演示了OAuth2.0四种授权模式的实战应用,涵盖资源与授权服务搭建、配置及测试流程。通过具体案例展示授权码、简化、密码和客户端模式的实现步骤,并结合Spring Security完成认证授权,最终成功获取token并访问受保护资源。
|
1天前
|
存储 安全 前端开发
1.认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。文中介绍了其四大授权模式:授权码模式(最安全,适用于Web应用)、简化模式(适用于前端单页应用)、密码模式(需高度信任)和客户端模式(服务间调用)。通过案例解析,说明OAuth2.0如何实现服务间资源共享与单点登录,提升系统安全性与用户体验。
1.认识OAuth2.0