SpringBoot集成之logback

       目前市面上的日志框架常见的有着几类,而我们常用的就是slf4j,它的实现以log4j,log4j2和logback为主,本文只要以logback作为slf4j的实现

打开pom文件的图表时,我们可以发现,SpringBoot内部已经有logback的相关依赖,此时我们不需要引入logback的相关依赖

在resources下新建一个人logback-spring.xml,作为日志的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
  <contextName>Logback For demo Mobile</contextName>
  <!-- 设置log日志存放地址 -->
  <!--(改) 单环境设置 -->
  <!--<property name="LOG_HOME" value="/logger/log" />-->
  <!-- 多环境设置 -->
  <springProfile name="dev">
    <property name="LOG_HOME" value="/logger/log1" />
  </springProfile>
  <springProfile name="prod">
    <property name="LOG_HOME" value="/logger/log2" />
  </springProfile>
  <!-- 控制台输出 -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoder默认配置为PartternLayoutEncoder -->
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} -%msg%n</pattern>
    </encoder>
    <target>System.out</target>
  </appender>
  <!-- 按照每天生成日志文件 -->
  <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!--日志文件输出的文件名 ,每天保存(侧翻)一次 -->
      <FileNamePattern>D:/\${LOG_HOME}/\%d{yyyy-MM-dd}.log</FileNamePattern>
      <!--日志文件保留天数 -->
      <MaxHistory>180</MaxHistory>
    </rollingPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{25} -%msg%n</pattern>
    </encoder>
    <!--日志文件最大的大小 -->
    <triggeringPolicy
      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <MaxFileSize>20MB</MaxFileSize>
    </triggeringPolicy>
  </appender>
  <!-- (改)过滤器,可以指定哪些包,哪个记录到等级, -->
  <!-- 运用的场景比如,你只需要com.demo.controller包下的error日志输出。定义好name="com.demo.controller" level="ERROR" 就行了 -->
  <logger name="com" level="INFO">
    <appender-ref ref="ROLLING_FILE" />
  </logger>
  <!-- 全局,控制台遇到INFO及以上级别就进行输出 -->
  <root level="INFO">
    <appender-ref ref="STDOUT" />
    <!--日志文件保存到指定位置 -->
    <appender-ref ref="ROLLING_FILE" />
  </root>
</configuration>

 

新建两个配置文件,application-dev.properties和application-prod.properties,配置如下

定义一个java类,用于日志测试

package com.example.demo.controller;

import com.example.demo.entity.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by linjiaming
 */
@RestController
public class HelloController {
    Logger log = LoggerFactory.getLogger(HelloController.class);
    @Value("${boot.name}")
    private String name;

    @RequestMapping("hello")
    public User hello(){
        log.info("姓名"+name);
        User user = new User();
        user.setName(name);
        return user;
    }
}

运行后,地址栏输入http://localhost:8081/hello,得到日志文件:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值