springboot+Logback配置日志

springboot+Logback配置日志

1、新建springboot项目

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

    </dependencies>

2、引入logback.log文件

<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="false" scan="true">

    <!-- 日志格式,%d:日期;%thread:线程名;%-5level:日志级别从左显示5个字符长度,列如:DEBUG;
        %logger{36}:java类名,例如:com.muses.taoshop.MyTest,36表示字符长度;%msg:日志内容;%d:换行 -->
    <property name="LOG_PATTERN"
              value="%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" />
    <!-- root日志级别-->
    <property name="${LOG_ROOT_LEVEL}" value="DEBUG" />
    <!-- 日志跟目录 -->
    <property name="LOG_HOME" value="data/logs" />
    <!-- 日志文件路径-->
    <property name="LOG_DIR" value="${LOG_HOME}/%d{yyyyMMdd}" />
    <!-- 日志文件名称 -->
    <property name="LOG_PREFIX" value="portal" />
    <!-- 日志文件编码 -->
    <property name="LOG_CHARSET" value="utf-8" />
    <!-- 配置日志的滚动时间,保存时间为15-->
    <property name="MAX_HISTORY" value="15" />
    <!-- 文件大小,默认为10MB-->
    <property name="MAX_FILE_SIZE" value="10" />


    <!-- 打印到控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 格式化日志内容-->
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- 打印所有日志,保存到文件-->
    <appender name="FILE_ALL"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/all_${LOG_PREFIX}.log</file>
        <!-- 设置滚动策略,当日志文件大小超过${MAX_FILE_SIZE}时,新的日志内容写到新的日志文件-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 新的日志文件路径名称,%d:日期 %i:i是变量 -->
            <fileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 保存日志15-->
            <maxHistory>${MAX_HISTORY}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 日志文件的最大大小 -->
                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!-- 格式日志文件内容-->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${LOG_PATTERN}</pattern>
        </layout>
    </appender>

    <!-- 打印错误日志,保存到文件-->
    <appender name="FILE_ERR"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/err_${LOG_PREFIX}.log</file>
        <!-- 设置滚动策略,当日志文件大小超过${MAX_FILE_SIZE}时,新的日志内容写到新的日志文件-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 新的日志文件路径名称,%d:日期 %i:i是变量 -->
            <fileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 保存日志15-->
            <maxHistory>${MAX_HISTORY}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 日志文件的最大大小 -->
                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!-- 格式日志文件内容-->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${LOG_PATTERN}</pattern>
        </layout>
    </appender>

    <!-- rest template logger-->
    <!--<logger name="org.springframework.web.client.RestTemplate" level="DEBUG" />-->
    <!--<logger name="org.springframework" level="DEBUG" />-->

    <!-- jdbc-->
    <!--<logger name="jdbc.sqltiming" level="DEBUG" />-->
    <logger name="org.mybatis" level="DEBUG" />

    <!-- zookeeper-->
    <logger name="org.apache.zookeeper"    level="ERROR"  />

    <!-- dubbo -->
    <logger name="com.alibaba.dubbo.monitor" level="ERROR"/>
    <logger name="com.alibaba.dubbo.remoting" level="ERROR" />

    <!-- 日志输出级别 -->
    <root leve="${LOG_ROOT_LEVEL}">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE_ALL" />
        <appender-ref ref="FILE_ERR" />
    </root>

</configuration>

3、applicatin.yml文件
logging.level设置包的日志级别,TARCE < DEBUG < INFO < WARN < ERROR < FATAL,controller包的日志级别为error,那么TARCE 、DEBUG 、 INFO 、 WARN级别的日志不打印

server:
  port: 8083
logging:
  config: classpath:logback.xml
  level:
    com.example.demo: debug
    com.example.demo.controller: error
  file:
    path: /data/logs

4、controller文件

@RestController
public class HelloController {
    private static final Logger LOG = LoggerFactory.getLogger(HelloController.class);
    @RequestMapping("hello")
    public String hello(){
        LOG.error("error记录");
        LOG.info("info记录");
        LOG.debug("debug记录");

        return "hello";
    }
}

运行截图:
在这里插入图片描述
这里打印了error级别的日志。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值