美文网首页
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