首页 > 其他分享 > Slf4J日志

Slf4J日志

时间:2022-11-03 08:55:57浏览次数:74  
标签:true Slf4J slf4j org 日志 logback log4j

Slf4J

slf4j是一个日志标准。

slf4j-simple、logback都是slf4j的具体实现,log4j并不直接实现slf4j,但是有专门的一层桥接slf4j-log4j12来实现slf4j。

关键代码是:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

依赖

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.36</version>
</dependency>

引入依赖后并不能直接使用slf4j,需要引入一个实现

logback

springboot的默认方式

<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.10</version>
    <scope>test</scope>
</dependency>
slf4j-simple
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version>
    <scope>test</scope>
</dependency>
log4j2
<!--核心包-->
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.17.1</version>
</dependency>

<!--实现slf4j-->
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.17.1</version>
</dependency>

测试代码

Logger logger= LoggerFactory.getLogger("JUnit5AppTest");
logger.error("123");

logback

日志级别

日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出

github

https://github.com/qos-ch/logback

配置文件

resources目录下,官方推荐配置文件名:logback-spring.xml

配置详解

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <appender name="STDOUT"
              class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned by default the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

configuration

scan
scan="true"

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

scanPeriod
scanPeriod="10 seconds"

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

debug
debug="true"

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

timestamp

<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss" timeReference="contextBirth"/>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <!-- use the previously created timestamp to create a uniquely
         named log file -->
    <file>log-${bySecond}.txt</file>
    <encoder>
        <pattern>%logger{35} - %msg%n</pattern>
    </encoder>
</appender>
key

键名,作为变量名供后续配置元素使用

datePattern

日期格式

timeReference

默认使用当前时间,设置为contextBirth表示使用程序运行的时间

appender

定义日志编写事件

encoder

编码器,最终负责输出日志事件

pattern

负责控制输出日志的格式

标签:true,Slf4J,slf4j,org,日志,logback,log4j
From: https://www.cnblogs.com/Bin-x/p/16853222.html

相关文章

  • 无法发送具有此谓词类型的内容正文 RestSharp使用日志
    在使用RestSharp调用Api的时候,出现如下错误:无法发送具有此谓词类型的内容正文经过网上搜索,发现问题所在行:request.AddHeader("Content-Type",baseRequest.ContentType......
  • 清理数据库日志以解决 【数据库的事务日志已满,原因为“LOG_BACKUP”】异常
    手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清......
  • 为何传统的日志和可观测性会浪费开发人员的时间|TheNewStack
    【文章来源】https://thenewstack.io/why-traditional-logging-and-observability-waste-developer-time/左移(使数据位向左移动的移位操作)可观测性的神奇之处在于:能直接......
  • SpringBoot自定义注解+异步+观察者模式实现业务日志保存
    一、前言我们在企业级的开发中,必不可少的是对日志的记录,实现有很多种方式,常见的就是基于AOP+注解进行保存,但是考虑到程序的流畅和效率,我们可以使用异步进行保存,在高并发情......
  • 项目配置日志和记录日志
    日志的配置在settings配置文件中,添加以下代码,进行日志的配置:#真实项目上线后,日志文件打印级别不能过低,因为一次日志记录就是一次文件io操作LOGGING={'version':......
  • Linux 系统 logroate日志管理
    1.简介Logrotate是基于CRON来运行的,其脚本是「/etc/cron.daily/logrotate」#!/bin/sh/usr/sbin/logrotate-s/var/lib/logrotate/logrotate.status/etc/logrotate.......
  • 情绪日志-2022-11
    1101咨询话题专注于情绪的对话交流,让我社交的压力小很多不太将自己的注意力放在别人的身上,不再过多的关注别人的得失,没有较重的比较心理独处的能力有所提升,安静看书学......
  • 不重用的undo日志 (2)—mysql进阶(六十五)
    前面我们说了undo日志在insert,update,delete存储的日志格式,delete存储的type是trx_undo_del_mark_rec里面有个参数oldroll_pointer会指向insert的地址值,恢复需要的数据。Sel......
  • undo日志insert,update,delete (1)—mysql进阶(六十四)
    前面说了redo日志为了保证系统宕机的情况下,能够恢复数据,恢复数据是在以checkpoint_lsn为起始位子来恢复,在该值之前的都是已经持久化到磁盘的,可以为了提升效率而放弃,而之后的......
  • 如何切面记录日志
    提问如何切面记录日志回答使用MethodDecorator.FodyusingSystem.Reflection;usingmy.Attributes;usingmy.Log4Net;usinglog4net;usingMethodDecorator.Fody.I......