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

郑州网站建设兼职友情链接网址

郑州网站建设兼职,友情链接网址,独立网站推广公司,淘宝网站建设的公司😊 作者: Eric 💖 主页: https://blog.csdn.net/weixin_47316183?typeblog 🎉 主题:SpringBoot实现文件记录日志,日志文件自动归档和压缩 ⏱️ 创作时间: 2023年08月06日 文章目…

在这里插入图片描述
😊 @ 作者: Eric
💖 @ 主页: https://blog.csdn.net/weixin_47316183?type=blog
🎉 @ 主题:SpringBoot实现文件记录日志,日志文件自动归档和压缩
⏱️ @ 创作时间: 2023年08月06日

在这里插入图片描述

文章目录

  • 1、什么是Logback
  • 2、SpringBoot实现文件记录日志,日志文件自动归档和压缩
    • 2.1、配置
    • 2.2、日志记录到文件中
    • 2.3、日志文件自动归档和压缩
  • 总结


1、什么是Logback

Logback是一个Java日志框架,它是log4j的后继者,被广泛用于应用程序中记录日志。

Logger(日志记录器):

  • Logger 是 Logback 中最重要的组件之一。它负责收集应用程序中的日志信息,并将其传递给适当的 Appender 进行处理。Logger 使用不同的日志级别来决定日志信息的输出方式。常见的日志级别有 DEBUG、INFO、WARN、ERROR 和 TRACE
    Appender(日志输出目的地):
  • Appender 决定日志信息的输出目的地。Logback 提供了不同类型的 Appender,比如 ConsoleAppender、FileAppender 和 SocketAppender 等。每个 Appender 可以配置不同的 Layout,用于定义日志信息的格式。

Logback 的日志输出原理可以简单分为以下步骤:

  • 应用程序代码中使用 Logger 记录日志。Logger 根据日志级别决定是否将日志信息传递给 Appender。
  • 当 Logger需要输出日志时,它会将日志信息封装成一个 LogEvent 对象。
  • LogEvent 对象传递给配置好的 Appender。Appender 将根据配置将日志信息输出到不同的目的地,比如控制台、文件、远程服务器等。
  • 在输出日志之前,Appender 还会使用配置好的 Layout 对日志信息进行格式化。
  • 最终,格式化后的日志信息被输出到指定的目的地,供开发者和系统管理员查看和分析。


2、SpringBoot实现文件记录日志,日志文件自动归档和压缩

2.1、配置

1、引入依赖

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>

2、在 resource 目录下 创建文件 logback-spring.xml 内容如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds"><!--0. 日志格式和颜色渲染 --><!-- 彩色日志依赖的渲染类 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /><conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /><conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /><!-- 彩色日志格式 --><property name="log.path" value="./logs" /><property name="app.name" value="eric" /><property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><!--1. 输出到控制台--><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><encoder><Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!-- 设置字符集 --><charset>UTF-8</charset></encoder></appender><!-- 2.2 level为 INFO 日志,时间滚动输出  --><appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文档的路径及文档名 --><file>${log.path}/${app.name}-info.log</file><!--日志文档输出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 每天日志归档路径以及格式 --><fileNamePattern>${log.path}/${app.name}/${app.name}-info-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文档保留天数--><maxHistory>15</maxHistory></rollingPolicy><!-- 此日志文档只记录info级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 2.3 level为 WARN 日志,时间滚动输出  --><appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文档的路径及文档名 --><file>${log.path}/${app.name}-warn.log</file><!--日志文档输出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset> <!-- 此处设置字符集 --></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/${app.name}/${app.name}-warn-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文档保留天数--><maxHistory>15</maxHistory></rollingPolicy><!-- 此日志文档只记录warn级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>WARN</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 2.4 level为 ERROR 日志,时间滚动输出  --><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文档的路径及文档名 --><file>${log.path}/${app.name}-error.log</file><!--日志文档输出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset> <!-- 此处设置字符集 --></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/${app.name}/${app.name}-error-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文档保留天数--><maxHistory>15</maxHistory></rollingPolicy><!-- 此日志文档只记录ERROR级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!--<logger name="org.springframework.web" level="WARN"/><logger name="org.springframework.boot" level="WARN" /><logger name="springfox.documentation.spring" level="WARN" /><logger name="org.apache.shardingsphere" level="DEBUG" />--><!-- 开发、测试环境 --><springProfile name="dev,sit,test,uat"><logger name="org.springframework.web" level="INFO"/><logger name="org.springframework.boot" level="INFO" /><logger name="springfox.documentation.spring" level="INFO" /><logger name="ShardingSphere-SQL" level="INFO" /><logger name="SQLStatement" level="INFO" /><logger name="com.alibaba.nacos.client.naming" level="WARN" /><logger name="org.apache.shardingsphere.core.route.SQLLogger" level="INFO" /><logger name="com.zkj.lawfirm.platform" level="INFO" /></springProfile><!-- 生产环境--><springProfile name="prod"><logger name="org.springframework.web" level="WARN"/><logger name="org.springframework.boot" level="WARN" /><logger name="springfox.documentation.spring" level="WARN" /><logger name="org.apache.shardingsphere" level="WARN" /><logger name="ShardingSphere-SQL" level="WARN" /><logger name="com.alibaba.nacos.client.naming" level="WARN" /><logger name="org.apache.shardingsphere.core.route.SQLLogger" level="WARN" /><logger name="com.zkj.lawfirm.platform" level="INFO" /></springProfile><root level="INFO"><appender-ref ref="CONSOLE" /><appender-ref ref="INFO_FILE" /><appender-ref ref="WARN_FILE" /><appender-ref ref="ERROR_FILE" /></root></configuration>

3、编写一个控制器用来访问测试

package com.eric.springbootlog.demos.web;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
@Slf4j
public class BasicController {// http://127.0.0.1:8080/hello?name=lisi@RequestMapping("/hello")@ResponseBodypublic String hello(@RequestParam(name = "name", defaultValue = "unknown user") String name) {log.info("我是一条 info 日志");return "Hello " + name;}}

2.2、日志记录到文件中

此时我们启动项目,发现项目根目录会自动生成一个 logs 目录,发现日志已经成功记录到文件中了

在这里插入图片描述

此时我们再访问接口:http://127.0.0.1:8080/hello?name=lisi
发现日志成功打印,并且成功记录到日志文件中

在这里插入图片描述


2.3、日志文件自动归档和压缩

因为我在配置文件中已经配置好了,此时我们再手动更换下电脑的时间,我这里修改到明天
在这里插入图片描述

此时我们再次访问接口:http://127.0.0.1:8080/hello?name=lisi

在这里插入图片描述
发现昨天的日志成功自动归档,并且成为压缩文件了~


总结

怎么样,是不是特别的方便和简单~

http://www.hrbkazy.com/news/53190.html

相关文章:

  • 苏州网站建设白石百度问答app下载
  • 龙口网站建设价格营销推广网站推广方案
  • 青海高端网站建设公司谷歌搜索引擎优化
  • 申请关闭网站百度电话人工服务
  • 东莞建站怎么做爱站网长尾关键词
  • 企业建站公司排名为什么不好做舆情报告
  • 1688货源网官方网站优化大师官网下载安装
  • 做响应式网站的流程网站备案是什么意思
  • 消费全返的 微网站开发成都专业的整站优化
  • 做网站实现发送信息功能优化大师的使用方法
  • 深圳营销型网站制作公关公司是干嘛的
  • WordPress搭建社区网站南昌seo排名优化
  • app制作官网佛山网络排名优化
  • 站内推广的几种方式软文广告经典案例800字
  • 怎样给网站做图标百度投广告怎么收费
  • 政府网站建设拓扑图百度小说
  • 在godaddy做网站贵吗百度推广售后服务电话
  • 青海网站建设公司哪家好seo做关键词怎么收费的
  • 网站底部固定代码长沙网站托管优化
  • 自己做企业网站产品关键词
  • 手机网站底部悬浮菜单百度联盟
  • 建设网站所需材料优化网站排名的方法
  • wordpress建站教程道一网络营销网站平台有哪些
  • 普洱建设工程网站百度统计工具
  • 做网站的总是有活动怎么回事最新的新闻 最新消息
  • 设置网站域名解析和网站主机绑定企业seo关键词优化
  • 余杭区高端网站建设市场营销渠道
  • 企业网站色彩提升神马关键词排名报价
  • 网站制作网络推广方案网站制作平台
  • 官方网站建设 安全还踏实磐石网络营销顾问