技术查漏补缺(1)Logback

一、下定义:Logback是一个开源的日志组件

二、Logback的maven

<!--这个依赖直接包含了 logback-core 以及 slf4j-api的依赖-->
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version>
</dependency>

三、Logbakc的小常识

我们讲实战,LogBack在springboot中的使用(SpringBootCloud也是一样的)

小常识:SpringBoot会默认加载classpath:logback.xml或者classpath:logback-spring.xml或者classpath:logback-spring.groovy等文件作为日志配置文件。

当然我们也可以指定默认加载的日志配置文件

在xml格式是

loggingconfig: classpath:xxx.xml

然后在properties是这样子的

logging.config=classpath:xxx.xml 

三、logback-spring.xml配置说明的配置

基础配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"><!--%p:输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r:输出自应用启动到输出该日志讯息所耗费的毫秒数%t:输出产生该日志事件的线程名%f:输出日志讯息所属的类别的类别名%c:输出日志讯息所属的类的全名%d:输出日志时间点的日期或时间,指定格式的方式: %d{yyyy-MM-dd HH:mm:ss}%l:输出日志事件的发生位置,即输出日志讯息的语句在他所在类别的第几行。%m:输出代码中指定的讯息,如log(message)中的message%n:输出一个换行符号
--><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%logger{50}包名缩写,%n是换行符 --><property name="log_pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n"/><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--><!-- 日志存储路径 --><springPropertyscope="context"name="defaultLogDir"source="qy.log.history.logDir"/><!-- 日志备份保留时长 --><springPropertyscope="context"name="logMaxHistory"source="qy.log.history.maxHistory"/><!-- 日志大小 --><springPropertyscope="context"name="logMaxSize"source="qy.log.history.logMaxSize"/><property name="logMaxSize" value="200MB"/><!--&lt;!&ndash;控制台日志, 控制台输出 &ndash;&gt;--><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${log_pattern}</pattern><charset>utf8</charset></encoder></appender><!--文件日志, 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><!--<file>${defaultLogDir:-/qy/qy-doctorservice/logs}/log/docser-main.log</file>--><!--TimeBasedRollingPolicy 基于时间来定义轮转策略 --><!--SizeAndTimeBasedRollingPolicy 基于大小以及时间的轮转策略--><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的路径和文件名--><!--该属性定义了轮转时的属性名。它的值应该由文件名加上一个 %d 的占位符。%d 应该包含 java.text.SimpleDateFormat 中规定的日期格式。如果省略掉这个日期格式,那么就默认为 yyyy-MM-dd。轮转周期是通过 fileNamePattern 推断出来的。注意事项:1.如果FileNamePattern中指定多个 %d,只能报留一个%d作为主要的,用于推断轮转周期。其它的 %d 占位符必须通过 'aux' 标记为辅助的。2.MaxHistory 用来控制最多保留多少数量的归档文件,将会异步删除旧的文件。保留日志的量 = 轮转周期 * MaxHistory3.FileNamePattern中除了 %d 之外还有 %i。这两个占位符都是强制要求的。在当前时间还没有到达周期轮转之前,日志文件达到了 maxFileSize 指定的大小,会进行归档,递增索引从 0 开始。--><!--轮询周期:天--><!--<FileNamePattern>${defaultLogDir:-/qy/qy-doctorservice/logs}/log/%d{yyyy-MM-dd, aux}/credit.%d.%i.log</FileNamePattern>--><!-- 每天轮转(晚上零点),自动将归档文件压缩成 GZIP 格式,减少日志占用空间--><FileNamePattern>${defaultLogDir:-/qy/qy-doctorservice/logs}/log/%d{yyyy-MM-dd, aux}/credit.%d.%i.zip</FileNamePattern><!--日志文件保留轮询周期个数--><MaxHistory>${logMaxHistory:-15}</MaxHistory><!--单个日志文件最大的大小--><MaxFileSize>${logMaxSize:-100MB}</MaxFileSize><!--这个可选属性用来控制所有归档文件总的大小。当达到这个大小后,旧的归档文件将会被异步的删除。使用这个属性时还需要设置 maxHistory 属性。而且,maxHistory 将会被作为第一条件,该属性作为第二条件。--><!--归档文件总的大小--><totalSizeCap>1GB</totalSizeCap><!--cleanHistoryOnStart=true时在 appender 启动的时候,归档文件将会被删除。默认的值为 false--><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy><!--<append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。--><append>false</append><encoder><pattern>${log_pattern}</pattern><charset>utf8</charset></encoder></appender><!-- 日志输出级别 --><root level="INFO"><appender-ref ref="STDOUT" /><appender-ref ref="FILE"/></root>
</configuration>

效果是:

1.日志文件根据日期创建不同的文件夹,日志的归档单位为一天。

2.每个归档日期结束后自动压缩当天日志文件,并根据日期生成新的日志文件夹和日志文件。

3.单个日志的分割,日志可根据配置的单个日志文件大小进行分割。

这个是黑马头条里面的logBack,这个采用的是debug的启动,按需求配置即可

<?xml version="1.0" encoding="UTF-8"?><configuration><!--定义日志文件的存储地址,使用绝对路径--><property name="LOG_HOME" value="e:/logs"/><!-- Console 输出设置 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern><charset>utf8</charset></encoder></appender><!-- 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名--><fileNamePattern>${LOG_HOME}/leadnews.%d{yyyy-MM-dd}.log</fileNamePattern></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 异步输出 --><appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"><!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --><discardingThreshold>0</discardingThreshold><!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --><queueSize>512</queueSize><!-- 添加附加的appender,最多只能添加一个 --><appender-ref ref="FILE"/></appender><logger name="org.apache.ibatis.cache.decorators.LoggingCache" level="DEBUG" additivity="false"><appender-ref ref="CONSOLE"/></logger><logger name="org.springframework.boot" level="debug"/><root level="info"><!--<appender-ref ref="ASYNC"/>--><appender-ref ref="FILE"/><appender-ref ref="CONSOLE"/></root>
</configuration>

日志生成位置在

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/325409.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx下日志配置和排查错误

目录 一&#xff1a;配置 二&#xff1a;排查日志 一&#xff1a;配置 在Nginx中&#xff0c;日志配置是记录服务器活动和排查问题的重要环节。以下是一些常见的Nginx日志配置选项&#xff1a; 日志级别&#xff1a;通过设置日志级别&#xff0c;可以控制日志的详细程度。常…

编写一个弹跳小球的程序,小球在窗口中四处反弹(python)

import pygame import random# 初始化Pygame pygame.init()# 窗口尺寸 width 800 height 600# 创建窗口 screen pygame.display.set_mode((width, height)) pygame.display.set_caption("Bouncing Ball")# 小球初始位置和速度 ball_radius 20 ball_color (255, …

用 CSS 实现一个三角形、用 CSS 实现一个自适应的正方形、CSS写一个简单的幻灯片页面效果

用 CSS 实现一个三角形 效果&#xff1a; 参考代码&#xff1a; <!DOCTYPE html> <html> <head><style>.triangle {width: 0;height: 0;border: 100px solid red;border-top-color: transparent;border-left-color: transparent;border-right-colo…

计算机网络——应用层(1)

计算机网络——应用层&#xff08;1&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 协议原理内容原理小结体系结构分类——重点已标注 进程通信常见形式 因特网运输服务TCP&#xff08;传输控制协议&#xff09;UDP&#xff08;用户数据报协议&#xff09;…

金蝶Apusic应用服务器 loadTree JNDI注入漏洞

产品介绍 金蝶Apusic是一款企业级应用服务器&#xff0c;支持Java EE技术&#xff0c;适用于各种商业环境。 漏洞概述 由于金蝶Apusic应用服务器权限验证不当&#xff0c;使用较低JDK版本&#xff0c;导致攻击者可以向loadTree接口执行JNDI注入&#xff0c;远程加载恶意类&a…

C++ 释放指针

在C中&#xff0c;释放指针通常使用delete或delete[]操作符&#xff1b; 如果指针指向的是单个对象&#xff0c;可以使用delete操作符进行释放&#xff1b; 在释放完内存后&#xff0c;最好将指针置为nullptr&#xff0c;以避免出现悬空指针&#xff08;dangling pointer&#…

亲测表白网制作源码,在线制作表白,无数据库上传就能用

在线制作表白网源码 没有数据库上传就能用 后台/admin 账号密码都是admin

Linux———cat命令详解

目录 cat 命令是 Linux 中用于查看文件的内容或将多个文件合并输出。 基本语法&#xff1a; 常用选项&#xff1a; 示例用法&#xff1a; 查看文件的内容&#xff1a; ​编辑 将多个文件的内容合并输出&#xff1a; ​编辑 显示每一行的行号&#xff1a; ​编辑 显示非…

Windows BAT脚本 | 定时关机程序

使用说明&#xff1a;输入数字&#xff0c;实现一定时间后自动关机。 单位小时&#xff0c;用后缀 h 或 H。示例 1h 单位分钟&#xff0c;用后缀 m 或 M 或 min。示例 30min 单位秒。用后缀 s 或不用后缀。示例 100s 源码 及 配置方法 桌面新建文本文件&#xff0c;输入下面…

系列十一、(三)Sentinel控制台

一、Sentinel控制台 二、实时监控 2.1、概述 实时监控&#xff0c;顾名思义是用来实时监控的&#xff0c;具体监控的是接口请求通过的QPS和拒绝的QPS&#xff0c;默认情况下没有访问记录&#xff0c;所以看不到任何记录&#xff0c;需要访问接口才会有记录。另外需要注意&…

修改安卓apk设置为安卓主屏幕(launcher)

修改安卓apk 将apk可以设置安卓主屏幕 原理&#xff1a; 将打包好的apk文件进行拆包增加配置文件在重新编译回apk包 需要得相关文件下载 解包 apktool :https://pan.baidu.com/s/1oyCIYak_MHDJCvDbHj_qEA?pwd5j2xdex2jar&#xff1a;https://pan.baidu.com/s/1Nc-0vppVd0G…

【2023 CCF 大数据与计算智能大赛】基于TPU平台实现超分辨率重建模型部署 基于Real-ESRGAN的TPU超分模型部署

2023 CCF 大数据与计算智能大赛 《基于TPU平台实现超分辨率重建模型部署》 洋洋很棒 李鹏飞 算法工程师 中国-烟台 2155477673qq.com 团队简介 本人从事工业、互联网场景传统图像算法及深度学习算法开发、部署工作。其中端侧算法开发及部署工作5年时间。 摘要 本文是…