整合整合

简介: 基于Logback实现日志滚动与多文件输出,支持按日切分、保留15天历史记录。通过logback-spring.xml配置支付、任务、错误、SQL等多类日志独立文件存储,结合LogProxy按名称获取指定日志记录器,实现精细化日志管理,提升系统可维护性与排查效率。(238字)

整合Logback,滚动记录+多文件
1.logback-spring.xml
XML
复制代码
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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"?>

${LOGHOME}/job/job-%d{yyyy-MM-dd}.log
15

<!--支付-->
<logger name="PAY_LOG" additivity="${ADDITIVITY}">
    <level value="INFO"/>
    <appender-ref ref="PAY_FILE"/>
</logger>
<!--任务-->
<logger name="JOB_LOG" additivity="${ADDITIVITY}">
    <level value="INFO"/>
    <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>


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");
    

    }

}

相关文章
|
5月前
|
Java
HUTOOL-Word生成-Word07Writer
Hutool封装POI实现Word(docx)生成,提供Word07Writer类,支持分段添加文本、自定义字体样式,轻松创建文档。示例代码展示如何添加标题、正文并导出文件,操作简便,适用于Java环境下的简单Word处理需求。(238字)
|
5月前
|
缓存 Dubbo Java
什么是API网关
本文系统阐述了API网关的核心概念与价值,结合SpringBoot+Dubbo+Zookeeper架构引入Soul等网关实践,解析其作为请求路由、协议转换、统一鉴权、限流熔断的枢纽作用,探讨主流网关如Zuul、Kong等技术实现与异步、限流、降级等关键能力,揭示为何API网关成为现代微服务架构不可或缺的一环。(238字)
|
5月前
|
Arthas 监控 Java
精准定位java
本文介绍如何精准定位Java应用CPU负载过高问题。通过Arthas的watch指令监控DispatcherServlet的getHandler方法,快速定位高耗时Controller;结合反编译功能查看代码逻辑,高效排查性能瓶颈,提升系统稳定性。(238字)
Excel工具-HUTOOL-读取Excel
Hutool提供ExcelReader封装,支持读取Excel为Map、Bean或列表。针对大文件,提供Excel03SaxReader和Excel07SaxReader,基于SAX模式避免内存溢出,支持按行处理数据,适用于大数据量的高效读取。
|
5月前
|
Java
调用exe/bat并传参
使用ProcessBuilder执行批处理文件时,若系统找不到指定文件,通常是因路径或命令格式错误。建议检查文件路径是否正确,或改用Runtime.exec()方式执行命令,确保命令字符串完整且可被系统识别,避免文件找不到的异常。
|
5月前
|
存储 Java
超长String接收处理
Java中字符串变量最大长度为Integer.MAX_VALUE,但字符串字面量受限于class文件格式,最大长度为65534。超过此长度会导致编译错误。解决方案是通过StringBuilder分段处理长字符串,避免使用超长字面量。
|
5月前
|
jenkins Java 持续交付
SpringBoot集成Jenkins
基于阿里云CentOS 7环境,配置JDK1.8后安装Jenkins,通过YUM方式部署并修改默认用户为root、调整端口避免冲突。安装Git与Maven并配置阿里云镜像及环境变量,最后通过浏览器访问Jenkins完成初始化设置与插件安装,实现持续集成环境搭建。(238字)
|
5月前
|
Java Maven
Excel工具-HUTOOL-输出Excel
Hutool提供ExcelWriter封装,简化Java操作Excel。通过包装Workbook,支持列表、Map、Bean等数据写出,可自定义标题、样式及输出流,适用于导出、下载场景,调用flush或close后写入文件,需及时关闭释放资源。
|
存储 缓存 关系型数据库
MySQL为什么需要主键
本文介绍了MySQL中主键的重要性及最佳实践。主键用于唯一标识表中的每一行,其值必须唯一且不允许为空。主键有助于简化更新和删除操作,避免影响无关行。推荐使用与业务无关的自增ID作为Innodb表的主键,以优化存储结构、减少碎片并提高性能。此外,文章还提到不更新、不重用主键值以及避免使用可能变更的字段(如邮箱)作为主键的良好习惯。最后强调了紧凑索引结构对查询效率的关键作用。
383 0
MySQL为什么需要主键
|
5月前
|
Arthas Java 测试技术
Arthas安装
Arthas是一款Java诊断工具,需先启动Java应用并安装JDK。通过arths-boot.jar启动后选择对应进程即可接入,支持多进程管理,适用于SpringBoot等应用的线上问题排查与性能分析。(236字符)

热门文章

最新文章