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

【日志技术——Logback日志框架】

日志技术

1.引出

我们通常展示信息使用的是输出语句,但它有弊端,只能在控制台展示信息,不能灵活的指定日志输出的位置(文件,数据库),想加入或取消日志,需要修改源代码

2.日志技术

  • 可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)
  • 可以随时以开关控制日志的启停,无需侵入到源代码中去进行修改
  • 用来记录程序运行过程中的各种信息,并可以进行永久存储

3.日志的体系和框架

(1)日志体系

  • 日志接口:设计日志框架的一套标准,日志框架需要实现这些接口

    Commons Logging(JCL)、Simple Logging Facade for Java(SLF4J)

    因为对Commons Logging接口不满意,搞了SLF4J

  • 日志框架:牛人或第三方公司已经做好的实现代码,后来者直接拿去使用

    JUL(java.util.logging)、Log4j、Logback

    因为对Log4j的性能不满意,搞了Logback

Logback是基于SLF4J接口的日志规范实现的框架

4.Logback日志框架

(1)要使用Logback日志框架,至少需要在项目中整合三个模块

  • logback-core:基础模块,是其他两个模块的依赖基础(必须有)
  • logback-classic:完整实现了slf4j API模块(必须有)
  • logback-access:与Tomact和Jetty等Servlet容器集成,以提供HTTP访问日志的功能

(2)快速入门

  • 需求:使用Logback日志框架,记录系统的运行信息

  • 实现步骤

    ①将jar包拖入项目的lib文件夹下,对着jar包右键,选择Add As Library

    ②在src下导入配置文件logback.xml(必须放在src下)

    ③获取日志对象LOGGER,调用Logger方法打日志即可

获取日志对象LOGGER: private static final Logger LOGGER = LoggerFactory.getLogger(“类名”);

调用方法打日志:

  • LOGGER.info(String info)
  • LOGGER.debug(String info)
  • LOGGER.error(String info)
public class Demo {//成员位置,获取日志对象private static final Logger LOGGER = LoggerFactory.getLogger("Demo");public static void main(String[] args) {     try {LOGGER.info("方法开始执行");chu(10, 2);LOGGER.info("方法执行成功");} catch (Exception e) {LOGGER.error("程序出现异常,执行失败");e.printStackTrace();}}public static void chu(int a, int b) {LOGGER.debug("参数a:" + a);LOGGER.debug("参数b:" + b);int c = a / b;LOGGER.debug("运算结果:" + c);}
}

(3)核心配置文件logback.xml

①对Logback日志框架进行控制

②通常可以设置两个输出日志的位置:一个是控制台,一个是系统文件中

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">//日志输出路径<file>C:/code/itcast-data.log</file>

③level:ALL为所有,OFF为关闭日志,还可以用来设置打印级别,大小写无关

<root level=ALL">    
<appender-ref ref="CONSOLE"/>   
<appender-ref ref="FILE" />
</root>

(4)日志级别

日志级别指的是日志信息的类型,日志都会分级别,优先级由低到高

日志说明
trace(低)追踪,指明程序运行轨迹,不常用
debug测试,实际应用中一般将其作为最低级别
info输出重要的运行信息,数据连接、网络连接、IO操作等,使用较多
warn警告信息,可能会发生问题,使用较多
error(高)发生了错误,可能已经被解决,不影响程序运行

只有日志级别大于或等于核心配置文件的日志级别时,才会被记录,否则不记录

http://www.lryc.cn/news/159825.html

相关文章:

  • mysql存储过程和函数
  • 【HDFS】Hadoop-RPC:客户端侧通过Client.Connection#sendRpcRequest方法发送RPC序列化数据
  • Java基于 SpringBoot 的车辆充电桩系统
  • excel表导出
  • YOLOv8 快速入门
  • HJ48 从单向链表中删除指定值的节点
  • Java缓存理解
  • MHA高可用及故障切换
  • 1000元订金?华为折叠屏手机MateX5今日开始预订,售价尚未公布
  • Golang编写客户端SDK,并开源发布包到GitHub,供其他项目import使用
  • 手写Mybatis:第10章-使用策略模式,调用参数处理器
  • pair 是 C++ 标准库中的一个模板类,用于存储两个对象的组合
  • More Effective C++学习笔记(5)
  • SpringMVC之CRUD(直接让你迅速完成部署)
  • Github Copilot连接不上服务器
  • (数字图像处理MATLAB+Python)第十二章图像编码-第三、四节:有损编码和JPEG
  • 基于SpringBoot + Vue的项目整合WebSocket的入门教程
  • AI智能机器人的语音识别是如何实现的 ?
  • RabbitMQ: 死信队列
  • 232 - Crossword Answers (UVA)
  • MySQL表结构设计规范
  • 如何利用ProcessOn 做资产管理流程图
  • geopandas 笔记:geometry上的操作汇总
  • 【MongoDB】Ubuntu22.04 下安装 MongoDB | 用户权限认证 | skynet.db.mongo 模块使用
  • Python对象序列化
  • jmeter 准确的吞吐量定时器 Precise Throughput Timer
  • 后端/DFT/ATPG/PCB/SignOff设计常用工具/操作/流程及一些文件类型
  • jvm 程序计算器 程序计数器是否溢出 程序计数器是做什么的 java程序计数器会内存溢出吗 程序计数器作用与用处 jvm内存模型 jvm合集(一)
  • 关于近期小程序测试的常见漏洞演示
  • 磐基2.0部署apisix集群