美文网首页
SpringBoot 日志配置

SpringBoot 日志配置

作者: qyfl | 来源:发表于2019-11-28 16:37 被阅读0次

两种使用日志的方法

方法1,创建 Logger 对象

@RunWith(SpringRunner.class)
@SpringBootTest
public class LoggerTest {

    private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);

    @Test
    public void test1() {
        logger.debug("debug..........");
        logger.info("info..........");
        logger.error("error..........");
    }
}

然后就可以在类中使用 logger 来输出日志

方法2,使用 @Slf4j

添加依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

使用

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {

    @Test
    public void test1() {
        log.debug("debug..........");
        log.info("info..........");
        log.error("error..........");
    }
}

在日志中输出变量

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {

    @Test
    public void test1() {

        String name = "qyfl";
        String password = "123456";

        log.info("name:({}), password:({})", name, password);
    }
}

{ } 是占位符,将后面的参数依次填充到占位符中。

Logback 配置

方式一:application.yml

logging:
  pattern:
    console: "%d-%msg%n"
  path: /var/log/tomcat/
  file: /var/log/tomcat/sell.log

pattern.console 配置的是日志输出格式,

path 配置的是文件输出路径,

file 配置的是日志文件的名字。 配置 file 的时候已经包含了 path 的配置,就无需另外配置 path 了。

logging:
  level: debug

将日志的级别设置为 debug ,比 debug 等级高的日志会被全部打印出来,低于 debug 级别的日志,不会被打印。

level 的设置还可以精确到类,比如

logging:
  level:
    com.imooc.LoggerTest: debug

方式二:logback-spring.xml

在 resources 目录下新建 logback-spring.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>

<configuration>


    <!-- 设置控制台 log  -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d - %msg %n</pattern>
        </layout>
    </appender>


    <!-- 设置 INFO 级别的 log -->
    <appender name="InfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!-- 过滤日志,只留下 INFO 级别的 log -->
        <filter ch="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <!-- 设置 log 输出格式 -->
        <encoder>
            <pattern>%msg%sn</pattern>
        </encoder>

        <!-- 滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志路径 -->
            <fileNamePattern>
                /var/log/tomcat/sell/info.%d.log
            </fileNamePattern>
        </rollingPolicy>

    </appender>


    <!-- 设置 DEBUG 级别的 log -->
    <appender name="ErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!-- 过滤日志,只留下 ERROR 级别的 log -->
        <filter ch="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <!-- 设置 log 输出格式 -->
        <encoder>
            <pattern>%msg%sn</pattern>
        </encoder>

        <!-- 滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志路径 -->
            <fileNamePattern>
                /var/log/tomcat/sell/debug.%d.log
            </fileNamePattern>
        </rollingPolicy>

    </appender>


    <!-- 设置 ERROR 级别的 log -->
    <appender name="ErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <!-- 过滤日志,只留下 ERROR 级别的 log -->
        <filter ch="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <!-- 设置 log 输出格式 -->
        <encoder>
            <pattern>%msg%sn</pattern>
        </encoder>

        <!-- 滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志路径 -->
            <fileNamePattern>
                /var/log/tomcat/sell/error.%d.log
            </fileNamePattern>
        </rollingPolicy>

    </appender>

    
    <!-- 设置日志级别  -->
    <root level="info">
        
        <!-- 使用那些配置项 ref 中的名字要和 appender.name 对应 -->
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="InfoLog"/>
        <appender-ref ref="ErrorLog"/>
    </root>

</configuration>

<pattern> 配置日志输出格式

<root level="info"> 将配置作用在 root 节点下面,级别调为 info (低于 info 不会打印)。

<appender-ref ref="consoleLog" /> 设置到控制台日志

<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> 设置日志为滚动日志

相关文章

网友评论

      本文标题:SpringBoot 日志配置

      本文链接:https://www.haomeiwen.com/subject/eebbwctx.html