当前位置: 首页 > news >正文

Logback.xml中日志的配置

日志级别

  • trace->debug->info->warn->error->fatal最高致命错误

控制台日志输出

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> //这里class绑定为控制台输出<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> //这个encoder是编码器,根据pattern格式编码成对应格式的日志<!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder></appender>

按照每天生成日志

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">//切割之后的日志名字要按照时间归档<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件输出的文件名 --><FileNamePattern>${LOG_HOME}/smartpai.%d{yyyy-MM-dd}.log</FileNamePattern><!-- 日志文件保留天数 --><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder><!-- 日志文件最大的大小 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>100MB</MaxFileSize></triggeringPolicy></appender>

错误日志单独输出

<!-- 错误日志单独输出 --><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">//设置过滤器,只有ERROR级别能接受,否则拒绝,精确匹配<filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.log</FileNamePattern><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder></appender>

业务逻辑输出

    //同样是按照天数进行分割输出到business开头文件中,保存30天<appender name="BUSINESS_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_HOME}/business.%d{yyyy-MM-dd}.log</FileNamePattern><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder></appender>

性能日志输出

<!-- 性能日志单独输出 --><appender name="PERFORMANCE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${LOG_HOME}/performance.%d{yyyy-MM-dd}.log</FileNamePattern><MaxHistory>7</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder></appender>

精细化级别控制

    <!-- 项目包日志级别配置,全局控制级别,additivity表示关闭日志向上传递,避免根目录重复输出 --><logger name="com.yizhaoqi.smartpai" level="INFO" additivity="false"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/><appender-ref ref="ERROR_FILE"/><appender-ref ref="BUSINESS_FILE"/></logger><!-- 业务日志记录器 两个业务输出日志--><logger name="com.yizhaoqi.smartpai.business" level="INFO" additivity="false"><appender-ref ref="BUSINESS_FILE"/><appender-ref ref="CONSOLE"/></logger><!-- 性能日志记录器 针对性能日志配置--><logger name="com.yizhaoqi.smartpai.performance" level="INFO" additivity="false"><appender-ref ref="PERFORMANCE_FILE"/></logger>//对于第三方的日志进行级别设置,避免对业务日志淹没<!-- Spring框架日志级别 --><logger name="org.springframework" level="WARN"/><logger name="org.springframework.web" level="INFO"/><logger name="org.springframework.security" level="INFO"/><logger name="org.springframework.boot" level="INFO"/><!-- 数据库相关日志 --><logger name="org.hibernate" level="WARN"/><logger name="org.hibernate.SQL" level="INFO"/><logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/><!-- 第三方库日志级别 --><logger name="io.minio" level="WARN"/><logger name="org.apache.kafka" level="WARN"/><logger name="org.elasticsearch" level="WARN"/><logger name="co.elastic" level="WARN"/><logger name="org.apache.tika" level="WARN"/><logger name="io.netty" level="WARN"/><logger name="reactor.netty" level="WARN"/>//配置开发环境选择<!-- 开发环境配置 --><springProfile name="dev"><logger name="com.yizhaoqi.smartpai" level="DEBUG"/><logger name="org.springframework.web" level="DEBUG"/><logger name="org.springframework.security" level="DEBUG"/></springProfile><!-- 生产环境配置 --><springProfile name="prod"><logger name="com.yizhaoqi.smartpai" level="INFO"/><logger name="org.springframework" level="WARN"/><logger name="root" level="WARN"/></springProfile>//最后根目录设置级别兜底<!-- 根日志级别 --><root level="INFO"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE"/><appender-ref ref="ERROR_FILE"/></root>
http://www.jsqmd.com/news/150397/

相关文章:

  • 【DDD架构理解】
  • AtCoder Beginner Contest 438
  • Java毕设项目推荐-基于springboot的小区停车场车辆信息管理系统的设计与实现车位信息管理、车位预约、车辆进场管理【附源码+文档,调试定制服务】
  • 悉尼站点启用:大洋洲客户免去跨洋延迟困扰
  • 2025年专业曝气池清理厂家评选,曝气池清理推荐榜永邦环卫市场认可度高 - 品牌推荐师
  • TensorRT层融合技术原理与性能实测分析
  • 2025年12月北京专业律师权威推荐榜:离婚/工伤/交通事故/债权/企业顾问/刑事/工程/劳动纠纷律师实力解析 - 品牌企业推荐师(官方)
  • 软件开发入门与实践:从思路到代码的系统教学
  • 【毕业设计】基于springboot的音乐周边产品乐器售卖系统设计与实现(源码+文档+远程调试,全bao定制等)
  • 软件开发入门与实践:从思路到代码的系统教学
  • 2025.12.27博客
  • Java毕设选题推荐:基于SpringBoot+Vue的乐器销售推荐系统设计与实现基于springboot的音乐周边产品乐器售卖系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 为什么计算机需要操作系统?
  • 9个降AI率工具推荐!继续教育人群必备神器
  • 抖音快手小红书视频发布器真的免费吗?抖音快手小红书一键批量发布工具哪个好用??
  • Wayland下Flameshot解锁使用
  • 数据要素市场化新征程:北京以“体系化”攻坚,补齐高质量流通的“关键拼图”
  • 环境微振动控制至关重要
  • MFEM积分模块部分解析
  • 等保三级认证准备:TensorRT服务的安全体系建设
  • 从零到一:高效代码教学的实践与思考
  • 宿舍二三事
  • 医学大模型微调前的数据处理
  • 《人--件》读书笔记2
  • 团购拼单活动:降低中小企业采购门槛
  • 近视,阻断了多少人的梦想?影响了多少人的生活?
  • 公益项目资助:免费提供TensorRT资源给NGO组织
  • 基于TensorRT的高性能AI服务搭建全攻略
  • LeetCode周赛AI专场:TensorFlow题目解析
  • 机器人质量与成本十年演进(2015–2025)