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

简介: 该配置文件 `logback-spring.xml` 定义了多日志模块输出策略,按类别分离支付、任务、错误、请求参数及SQL等日志,支持滚动归档与编码设置。通过 `LogProxy.getLogger()` 获取指定命名的日志实例,实现精准日志记录与管理,提升系统可维护性与排查效率。

1.logback-spring.xml
XML
复制代码
<?xml version="1.0" encoding="UTF-8"?>
${PATTERN}
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
运行代码
复制代码
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
自定义认证前端页面
本示例演示Spring Security基础配置:前端引入登录页,后端新增接口与安全配置。通过SecurityConfig实现请求认证、表单登录、自定义跳转等,启动后访问/demo/index自动跳转登录页,认证成功返回提示信息,完成权限控制验证。
|
2月前
|
机器学习/深度学习 人工智能 监控
夜间野生动物目标检测数据集(17000张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含17000张夜间野生动物高清图像,已精准标注17类动物(如东北虎、貉、野猪等),采用标准YOLO格式,涵盖训练/验证/测试集,专为YOLOv5-v10等模型训练优化,适用于生态监测、AI视觉研究与教学实践。
|
3月前
|
存储 运维 安全
阿里云无影云电脑免费试用与新购活动参考:免费试用1个月,新购59元3个月起
阿里云无影云电脑免费试用及新购特惠活动,符合条件的新客户可享1次免费试用,含1个月个人版及数据盘、系统盘和网络带宽。无影云电脑打破传统PC界限,实现云上办公,降低IT成本,提高资源利用率,保障数据安全。无影云电脑产品配置多样,计费灵活,优势包括极致安全、高效运维、灵活接入和丰富应用场景,广泛适用于多个行业领域,为企业提供高效、安全、灵活的云上办公解决方案。
|
4月前
|
人工智能 JSON 网络协议
AI 大模型 LLM API 架构:Gemini 3.0 Pro 原生多模态能力的边界与工程落地
随着 Model-as-a-Service (MaaS) 的普及,如何在受限网络环境下构建高可靠的 GenAI 应用成为工程挑战。本文将分析 Gemini 3.0 Pro 的 Native Multimodal 架构特性,并探讨基于 n1n.ai 聚合网关(Aggregation Gateway)的跨区域调用方案。
384 1
AI 大模型 LLM API 架构:Gemini 3.0 Pro 原生多模态能力的边界与工程落地
|
5月前
|
JSON Java 数据格式
SpringBoot使用汇总
本课程系统讲解Spring Boot核心知识,涵盖环境搭建、JSON处理、日志配置、全局异常处理、AOP切面编程及MyBatis、Redis等主流框架集成,并结合实际项目搭建完整开发架构,助你快速掌握微服务开发技能。
|
10月前
|
JSON API 数据格式
实时外汇行情接口接入教程
本教程将指导您如何通过简单的几步接入实时外汇行情接口,获取您所需的外汇数据。
|
6月前
|
缓存 调度 数据库
RxJava基础操作符和高级操作符
RxJava基于观察者模式,通过Observable、Observer、Subscription和Disposable四大核心实现响应式编程。支持冷热数据流,提供丰富操作符进行变换、过滤与组合,并借助Scheduler实现线程调度,Flowable解决背压问题,Subject用于状态共享,适用于异步事件处理与复杂数据流管理。
272 0
|
5月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用的两大关键技术。前者是跨模型的标准协议,实现多工具动态集成;后者是模型调用外部功能的机制。MCP构建通用连接桥梁,支持跨平台、热插拔与细粒度管控,适用于复杂企业场景;Function Call则轻量直接,适合单模型快速开发。二者可协同工作:模型通过Function Call解析意图,转为MCP标准请求调用工具,兼顾灵活性与扩展性。未来将趋向融合,形成“解析-传输-执行”分层架构,推动AI应用标准化发展。
|
5月前
|
监控 Java 测试技术
OOM排查之路:一次曲折的线上故障复盘
本文记录了一次线上服务因Paimon数据湖与RocksDB集成引发的三次内存溢出(OOM)故障排查全过程。通过MAT、NMT、async-profiler等工具,结合监控分析与专家协作,最终定位到RocksDB通过JNI申请的堆外内存未释放是根源。团队通过架构优化,改由Flink统一写入Paimon,彻底解决问题。文章系统梳理了排查思路与工具使用,为类似技术栈提供宝贵经验。

热门文章

最新文章