slf4j 日志使用

16 篇文章 0 订阅
1 篇文章 0 订阅

1. 简介

下图来源于slf4j官网,从图中来看,可以得到如下信息:

slf4j是接口;

log4j、logback、java.util.logging、slf4j-simple、slf4j-nop是slf4j接口的一种的实现;

从图片的第三行观察可以发现(通过图表的颜色进行区分):

logback、slf4j-simple、slf4j-nop直接原生实现了slf4j的接口;

log4j、java.util.logging没有直接实现slf4j接口,所以需要的适配类将slf4j接口和具体实现进行绑定。

如果要开发一个libraray或者SDK供别人使用,最好的方式是只在dependency中添加slf4j-api.jar包,这样最后使用哪个日志就是用户自己来决定的。用户只需在自己的程序的classpath中提供不同的Jar包即可采用不同的日志实现方法

2. SpringBoot 整合 log4j

2.1 依赖

        <!--集成log4j-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.3.8.RELEASE</version>
        </dependency>

如果项目中别的依赖中也包含了slf4j,那么需要排除掉,如下:

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

2.2 配置输出格式

可以使用以下两种方式对日志系统的输出格式、记录级别、输出方式等进行配置:

  • 使用properties文件方式
  • 使用xml文件方式

1) log4j.properties 配置文件

log4j.logger.com.ibatis=WARN
log4j.logger.org.springframework=WARN

log4j.rootLogger = INFO, stdout, D, ERROR

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d [%p] [%t] - %m%n

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /var/log/info.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d [%p] [%t] - %m%n

log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.File = /var/log/error.log
log4j.appender.ERROR.Append = true
log4j.appender.ERROR.Threshold = ERROR
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern = %d [%p] [%t] - %m%n

2)xml文件方式

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!-- 应用名称 -->
    <property name="APP_NAME" value="logtest" />
    <!--日志文件的保存路径-->
    <property name="LOG_HOME" value="/var/log}" />
    <!-- 日志输出格式:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
    <property name="ENCODER_PATTERN"
              value="%d{yyyy-MM-dd  HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n" />
    <contextName>${APP_NAME}</contextName>

    <!-- 控制台日志:输出全部日志到控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>${ENCODER_PATTERN}</Pattern>
        </encoder>
    </appender>

    <!-- 文件日志:输出全部日志到文件 -->
    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/output.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${ENCODER_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- 错误日志:用于将错误日志输出到独立文件 -->
    <appender name="ERROR_FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${ENCODER_PATTERN}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>WARN</level>
        </filter>
    </appender>

    <!-- 独立输出的同步日志 -->
    <appender name="SYNC_FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/sync.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${ENCODER_PATTERN}</pattern>
        </encoder>
    </appender>

    <logger name="log.sync" level="DEBUG" addtivity="true">
        <appender-ref ref="SYNC_FILE" />
    </logger>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>
</configuration>

1)Loggers

Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。

2)Appenders

禁用和使用日志请求只是Log4j的基本功能,Log4j日志系统还提供许多强大的功能,比如允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等,可以根据天数或者文件大小产生新的文件,可以以流的形式发送到其它地方等等。

常使用的类如下:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

配置模式:
log4j.appender.appenderName = className
log4j.appender.appenderName.Option1 = value1

log4j.appender.appenderName.OptionN = valueN

3)Layouts

有时用户希望根据自己的喜好格式化自己的日志输出,Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式。

常使用的类如下:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)

配置模式:

log4j.appender.appenderName.layout =className
log4j.appender.appenderName.layout.Option1 = value1

log4j.appender.appenderName.layout.OptionN = valueN

日志信息格式中几个符号所代表的含义

  • -X号: X信息输出时左对齐;
  • %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
  • %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
  • %r: 输出自应用启动到输出该log信息耗费的毫秒数
  • %c: 输出日志信息所属的类目,通常就是所在类的全名
  • %t: 输出产生该日志事件的线程名
  • %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
  • %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
  • %%: 输出一个”%”字符
  • %F: 输出日志消息产生时所在的文件名称
  • %L: 输出代码中的行号
  • %m: 输出代码中指定的消息,产生的日志具体信息
  • %n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行

2.3 springboot 集成 log4j 显示数据库打印信息

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="LOG_PATTERN">
            %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex
        </Property>
    </Properties>
    <Appenders>
        <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="#{com.cigna.hmc.material.mapper}" level="trace"   additivity="false">
            <AppenderRef ref="ConsoleAppender" />
        </Logger>

        <Root level="info">
            <AppenderRef ref="ConsoleAppender" />
        </Root>
    </Loggers>
</Configuration>

Application.yml


logging:
      level:
        com.cigna.hmc.material.mapper.*: debug

3. logback 使用

精彩3000字!给讲得明明白白:配置 logback_头顶假发的博客-CSDN博客

以下内容转载路径:Logback 使用详解 - 迷走神经 - 博客园

3.1 依赖

创建一个 SpringBoot 项目即可直接使用 Logback 进行日志打印,只需引入 spring-boot-starter-web,该jar依赖 spring-boot-starter-logging 都已经引用好了。SpringBoot 在方法 org.springframework.boot.logging.AbstractLoggingSystem#initializeWithConventions 进行了默认日志的配置

由于有默认配置,所以使用的时候直接引用包 lombok.extern.slf4j.Slf4j; 就可以使用了。

3.2 日志级别

TRACE < DEBUG < INFO < WARN < ERROR,使用的日志级别越小,打印的日志越多,比如设置的日志级别是 DEBUG,那么项目中的所有大于 DEBUG 的日志都会打印。如果设置的日志级别是 ERROR ,那其他四个日志就都不会打印。

  • TRACE:级别最小的日志,所有的日志都进行打印,一般不使用。
  • DEBUG:此日志级别一般用作调试使用,比如新开发的功能,还不是太放心,就开启此日志级别。
  • INFO: 最常使用的日志级别,比如打印产生分支的信息,比如一个 if 的条件,让开发能通过日志排查问题。
  • WARN:警告日志,代码走到比较让人需要注意的地方打印此级别。
  • ERROR:发生错误时打印。

 横排是项目配置的日志级别。竖排是项目中打印日志使用的日志级别。

3.2 xml 配置

配置文件:

#设置应用的日志级别 logback-spring.xml中使用
logging:
  level:
    com:
      janet: INFO

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!--debug:当此属性设置为 true 时,将打印出 logback 内部日志信息,实时查看 logback 运行状态。默认值为 false。-->
<!--scan:当此属性设置为 true 时,配置文件如果发生改变,将会被重新加载,默认值为 true。-->
<!--scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位:毫秒。当 scan 为 true 时,此属性生效。默认的时间间隔:1分钟。-->
<configuration debug="false" scan="true" scanPeriod="30 minutes">

    <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
    <property name="LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
    <property name="LOG_HOME" value="/var/log/tomcat/janet_test_application"/>
    <!--从配置文件中加载日志level-->
    <springProperty scope="context" name="LOG_LEVEL_INFO" source="logging.level.com.janet"/>

    <!--子节点 appender,主要负责写日志的组件,具有两个属性:① name:起个名字,方便别处使用。② class:指定一个具体的 Appender 实现,此实现方式影响日志输出的目的地,比如是控制台、指定文件等。知道一些常用的就行了。-->
    <!-- 控制台输出日志  属性:class = ch.qos.logback.core.ConsoleAppender :Appender 的一种实现,作用是把日志输出到控制台。 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>${LOG_LEVEL_INFO}</level>
        </filter>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--属性:class = ch.qos.logback.core.rolling.RollingFileAppender:Appender 的一种实现,作用是把日志输出到指定文件中,当文件达到一定规则时,在触发规则时会做不同的事,此规则受 rollingPolicy 和 triggeringPolicy 的影响。-->
    <!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
    <!-- 按照每天生成日志文件 -->
    <appender name="RollingFileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <append>true</append>
        <!--临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>${LOG_LEVEL_INFO}</level>
        </filter>
        <!--file:要写入的文件绝对路径,这里的路径没有设置盘符,Linux 和 Mac 好理解,如果是 Windows,那即是当前项目所在盘符根目录开始。-->
        <file>${LOG_HOME}/info.log</file>
        <!--rollingPolicy:滚动策略。-->
        <!--SizeAndTimeBasedRollingPolicy 是 TimeBasedRollingPolicy 的子类,具有 TimeBasedRollingPolicy 的特性,新增了一个属性 maxFileSize,在 TimeBasedRollingPolicy 的基础上,增加一个文件大小的判断,fileNamePattern 上要增加 %i 的配置。-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--fileNamePattern:日志文件输出的文件名。%i 是在触发 triggeringPolicy 时递增用来命名文件使用。-->
            <fileNamePattern>${LOG_HOME}/info.log.%d{yyyy-MM-dd}</fileNamePattern>
            <!-- 日志在磁盘上保留的天数 -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <!--encoder:对要输出的日志格式化使用-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>${LOG_PATTERN}</Pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 错误日志 appender : 按照每天生成日志文件 -->
    <appender name="RollingFileError" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <append>true</append>
        <!-- 过滤器,只记录 error 级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <!-- 日志名称 -->
        <file>${LOG_HOME}/error.log</file>
        <!-- 每天生成一个日志文件,保存30天的日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名:按天回滚 daily -->
            <FileNamePattern>${LOG_HOME}/error.log.%d{yyyy-MM-dd}</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--root:作用与 logger 一般无二,只是它没有 name、additivity 两个属性,没有 name 是因为它代表的就是根目录,所以不需要,根目录自然也不需要使用 additivity 进行叠加。-->
    <root level="ALL">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="RollingFileInfo"/>
        <appender-ref ref="RollingFileError"/>
    </root>

    <!-- 定制化某些包的日志输出级别: 过滤掉spring和mybatis的一些无用的DEBUG信息 -->
    <!--name:指定某个包下或者具体类的日志级别。比如:com、org、io、java.lang.String等-->
    <!--level:用来设置打印级别,大小写无关:ALL、TRACE、DEBUG、INFO、WARN、ERROR、OFF,还有一个特殊值 INHERITED 或者同义词 NULL,代表强制执行上级的级别。 如果未设置此属性,那么当前 logger 将会继承上级的级别。-->
    <logger name="org.mybatis" level="INFO"/>
    <logger name="org.springframework" level="INFO"/>

    <!-- 将sql语句输出到具体的日志文件中 -->
    <!--	<logger name="com.alipay.sofa.cloudplatform.common.dao" level="DEBUG" additivity="false">-->
    <!--		<appender-ref ref="SQL-APPENDER"/>-->
    <!--	</logger>-->

</configuration>

4. SpringBoot 基于 Aop 自定义 Slf4j 日志输出格式

SpringBoot基于Aop自定义Slf4j日志输出格式_码霸霸的博客-CSDN博客_slf4j 自定义



转载链接参考:

SpringBoot集成log4j,解决log4j.properties不生效问题 - 袁骞骞 - 博客园

Log4J日志整合及配置详解 - yufan123 - 博客园

日志组件slf4j介绍及配置详解 - 简书

SpringBoot基于Aop自定义Slf4j日志输出格式_码霸霸的博客-CSDN博客_slf4j 自定义

slf4j,log4j,logback之间的关系_小小本科生的博客-CSDN博客_log4j logback slf4j

Logback 使用详解 - 迷走神经 - 博客园

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Spring Boot可以很方便地整合SLF4J日志框架,只需要在pom.xml文件中添加相应的依赖即可。具体步骤如下: 1. 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` 2. 在application.properties文件中配置日志级别和输出格式,例如: ``` logging.level.root=INFO logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ``` 3. 在代码中使用SLF4J进行日志输出,例如: ``` import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyController { private static final Logger logger = LoggerFactory.getLogger(MyController.class); public void myMethod() { logger.info("This is a log message."); } } ``` 以上就是Spring Boot整合SLF4J日志的基本步骤。 ### 回答2: SLF4J是一个在Java应用程序中使用日志的简单抽象工具,它可以帮助开发者集成不同的日志框架,如logback, log4jjava.util.logging。Spring Boot作为一种流行的Java框架,提供了丰富的工具来简化应用程序的开发,其中就包括日志记录。 在Spring Boot中,将SLF4J与其他日志框架整合非常简单。首先,我们需要在pom.xml文件中添加所需的依赖项,例如: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.30</version> </dependency> </dependencies> ``` 在这个例子中,我们添加了一个简单的依赖项,该依赖项将SLF4J与默认的Simple工厂一起使用,以便在控制台上记录日志消息。 接下来,我们需要在应用程序中使用SLF4J记录日志消息。这可以通过在我们的类中添加以下代码行来完成: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RestController public class MyController { private Logger logger = LoggerFactory.getLogger(MyController.class); @GetMapping("/hello") public String sayHello() { logger.info("Hello from SLF4J"); return "Hello"; } } ``` 在这个例子中,我们首先导入了Logger和LoggerFactory类。然后,我们在我们的控制器类中添加了一个Logger实例,该实例将我们的日志记录到控制台上。最后,我们在GetMapping方法中使用该实例记录一条信息。 当我们运行我们的应用程序并访问/hello端点时,我们将在控制台上看到以下输出: ``` 2021-10-01 12:00:00.000 INFO 12345 --- [nio-8080-exec-1] com.example.demo.MyController : Hello from SLF4J ``` 这就是整合过程的简单演示。通过这个简单的例子,我们可以轻松地在Spring Boot应用程序中使用SLF4J进行日志记录。最后,使用SLF4J可以帮助我们将应用程序与日志框架进行解耦,使我们的应用程序更加灵活和可维护。 ### 回答3: Spring Boot 是一种用于创建微服务的框架,它将应用程序所需的所有配置和依赖项打包在一起,以便快速轻松地开发和部署应用程序。在 Spring Boot 中整合 SLF4J 日志系统非常简单,只需要进行以下几个步骤: 1.在 pom.xml 文件中添加所需的依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> ``` spring-boot-starter-logging 包的作用是引入 Spring Boot 应用程序的默认日志记录器 Logback,而 slf4j-api 是 SLF4J 日志系统的 API 接口,logback-classic 则是具体的日志实现。 2.在 application.properties 文件中配置日志记录器的属性: ``` # 根日志级别 logging.level.root=INFO # 控制台的日志级别 logging.level.org.springframework.web=DEBUG # 日志文件的输出路径 logging.file=/var/log/myapplication.log ``` 在上面的例子中,我们设置根日志级别为 INFO,控制台日志级别为 DEBUG,并在 /var/log/myapplication.log 文件中输出日志。 3.在代码中使用 SLF4J 记录日志: ``` import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyService { private static final Logger logger = LoggerFactory.getLogger(MyService.class); public void doSomething() { logger.debug("Doing something"); logger.info("Did something"); logger.error("Failed to do something"); } } ``` 在上面的代码中,我们使用SLF4J 的 getLogger() 方法来获取 MyService 类的日志记录器,然后使用 debug()、info() 和 error() 方法记录不同级别的日志。 通过上述步骤,我们就可以在 Spring Boot 应用程序中使用 SLF4J 记录日志了。值得注意的是,在开发调试时,可以将日志级别设置为 DEBUG,以便查看更详细的日志信息。而在生产环境中,应该将日志级别设置为 WARN 或 ERROR,以避免过多的日志输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值