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

Java日志(总结)

一、logback日志

  Logback是由log4j创始人设计的又一个开源日记组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日记系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日记的功能。

(一)、logback的默认配置

首先logback的默认配置文件一般和项目的配置文件在同一个位置。一般为logback开头,xml结尾的文件就是logback的配置文件。此配置文件的基本结构内容为:以<configuration>开头,后面有零个或多个<appender>元素,有零个或多个<logger>元素,有最多一个<root>元素。

1、 根节点<configuration>,主要包含下面三个属性:

scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。

scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。

debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

这里我们只设置了默认状态。

2、子节点<contextName>

用来设置上下文名称,每个logger都关联到logger上下文,默认上下文名称为default。但可以使用<contextName>设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改。

3、子节点<property> 

用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量。

name: 变量的名称

value: 的值时变量定义的值

4、子节点<timestamp>:

获取时间戳字符串,他有两个属性key和datePattern

key: 标识此<timestamp> 的名字;

datePattern: 设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式。

5、子节点<appender>:

负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名

(二)、ConsoleAppender

主要的功能就是把日志输出到控制T台进行查看和分析

<encoder>:对日志进行格式化。

<target>:字符串System.out(默认)或者System.err

<appender-ref ref="STDOUT" />的意思是存在一个名为 "STDOUT" 的 appender 配置,它负责将日志输出到控制台(STDOUT 是标准输出流的缩写)

(三)FileAppender

FileAppender:把日志添加到文件,有以下子节点:
<file>:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。

<append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。

<encoder>:对记录事件进行格式化。(具体参数稍后讲解 )

<prudent>:如果是 true,日志会被安全的写入文件,即使其他的FileAppender也在向此文件做写入操作,效率低,默认是 false。

(四)RollingFileAppender

滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。有以下子节点:

<file>:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。

<append>:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。

<rollingPolicy>:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名。属性class定义具体的滚动策略类class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy": 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。有以下子节点:

<fileNamePattern>:必要节点,包含文件名及“%d”转换符,“%d”可以包含一个java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}。

如果直接使用 %d,默认格式是 yyyy-MM-dd。RollingFileAppender的file字节点可有可无,通过设置file,可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件),活动文件的名字不会改变;

如果没设置file,活动文件的名字会根据fileNamePattern 的值,每隔一段时间改变一次。“/”或者“\”会被当做目录分隔符

<maxHistory>:

可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个月滚动,且<maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除。

      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy": 查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动。只有一个节点:

<maxFileSize>:这是活动文件的大小,默认值是10MB。

<prudent>:当为true时,不支持FixedWindowRollingPolicy。支持TimeBasedRollingPolicy,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。

<triggeringPolicy >: 告知 RollingFileAppender 合适激活滚动。

class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy" 根据固定窗口算法重命名文件的滚动策略。有以下子节点:

<minIndex>:窗口索引最小值

<maxIndex>:窗口索引最大值,当用户指定的窗口过大时,会自动将窗口设置为12。

<fileNamePattern>:必须包含“%i”例如,假设最小值和最大值分别为1和2,命名模式为 mylog%i.log,会产生归档文件mylog1.log和mylog2.log。还可以指定文件压缩选项,例如,mylog%i.log.gz 或者 没有log%i.log.zip


http://www.kler.cn/news/341324.html

相关文章:

  • K8sGPT 实战:智能化 Kubernetes 集群诊断与问题解决
  • Windows 11 24H2版本有哪些新功能_Windows 11 24H2十四大新功能介绍
  • 【Fine-Tuning】大模型微调理论及方法, PytorchHuggingFace微调实战
  • 《webpack深入浅出系列》
  • 【论文阅读】DeepAC:实时六自由度目标跟踪的深度主动轮廓
  • Linux如何将驱动文件编译成独立的模块或者编译到内核?
  • 缓存数据一致性保证通用方案
  • Linux下Nodejs应用service配置
  • LeetCode讲解篇之377. 组合总和 Ⅳ
  • 矩阵式键盘接口设计(用单片机读取4x4矩阵式键盘的键号,并将其显示在数码管上)(Proteus 与Keil uVision联合仿真)
  • 【网络安全】账户安全随笔
  • Vue82 路由器的两种工作模式 以及 node express 部署前端
  • C盘一红就卡顿到不行?为什么呢?
  • Python爬虫使用示例-古诗词摘录
  • Apache DolphinScheduler社区9月进展记录
  • 鸿蒙OS 开机动画流程
  • C++:visual studio运行时找不到.dll文件
  • 概率论详细介绍
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第十九章 Linux 工具之make 工具和 makefile 文件
  • easyexcel多sheet导出(唯一能用)