九,SpringBoot-日志管理(LogBack)

一,SpringBoot日志级别

springboot默认使用的日志框架是LogBack,默认INFO级别。

日志依赖:

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

实际开发中,该依赖已经默认依赖了,不需要我们单独再去依赖

SpringBoot日志级别(从低到高):

TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF

如果设置为INFO级别,则只会输出比INFO级别高的日志。

SpringBoot默认配置INFO,WARN,ERROR级别的日志输出到控制台。

二,日志配置输出

默认情况下,springboot的日志是输出到控制台的,如果我们想把日志写入到文件中,需要再application.properties(application.yml)文件中设置loggiing.file或logging.path属性。

1,loggin.file  设置文件,可以是绝对路径也可以是相对路径。如:loggin.file=log/objlog.log(相对路径,文件已经目录生成在项目的根目录下)或loggin.file=/log/objlog.log(绝对路径,文件生成系统盘根目录下(window默认c盘,不指定盘的话))

2,loggin.path 设置目录,可以是绝对路径也可以是相对路径。不需要文件名 会在该目录下默认生成spring.log文件,如:loggin.path=/var/log

两者不能同时使用,同时使用时只有loggin.file 生效,默认情k况下,日志文件的大小达到10MB会进行切分,产生新的日志文件

配置日志:

创建appliction.properties 文件,加上以下内容(当application.yml文件和application.properties文件同时存在时,项目启动两个文件配置都会读取到)

#root日志的默认输出级别为debug,其它日志的输出请自行百度
logging.level.root=warn
logging.level.org.hibernate=debug
logging.level.org.springframework.web=debug
logging.file=C:/log/springLog/spring_child.log  #生成日志文件到C盘下
#控制台输出格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %highlight(%-5level) %cyan(%logger{36}) - %msg%n
# 日志文件写入格式
logging.pattern.file=%d{yyyy-MM-dd} [%thread] %-5level %logger{36} - %msg%n

重新启动项目即可,控制台效果如下:

 

日志格式转换字符的具体含义可参考LogBack的官网,里面有详细的讲解,这里就不多做解释了。logback中文网|Introduction

 

三,自定义日志配置文件

由于springboot默认已经为我们依赖了logback,所以当我们需要修改一些配置时,直接在application文件中修改即可,除此之外我们还可以自定义配置文件对日志系统进行管理。(使用自定义配置文件时,application文件中不必设置日志的相关信息。一切信息在自定义配置文件中设置

根据不同的日志系统,按照相应的规则命名文件即可:

LogBack:logback-spring.xml(logback.xml)  

Log4j:   log4g-spring.xml(log4g.xml)    log4g-spring.properties(log4g.properties)

Log4j2: log4g2-spring.xml(log4g2.xml)

springboot官方推荐使用-spring的文件名作为日志配置。以 -spring命名的文件,springboot可以为它添加一些springboot特有的配置项。

另:可以通过logging.config=classpath:loggin_config.xml 来自定义配置名,一般情况下是不需要去改配置文件名的。有一个好处是可以区分环境,和profile一样。根据运行环境不同使用不同的配置文件。

1.创建logback-spring.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--定义日志文件的存储地址,使用绝对路径-->
    <property name="LOG_HOME" value="C:/log/springLog/spring_child.logs"/>

    <!-- Console 输出设置 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <fileNamePattern>${LOG_HOME}/spring_child.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 异步输出 -->
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>512</queueSize>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref="FILE"/>
    </appender>

    <logger name="org.springframework.boot" level="DEBUG"/>
    <root level="info">
        <!--<appender-ref ref="ASYNC"/>-->
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

关于logback的更多配置可以参考官网给的dmeo。

②,启动项目,查看控制台以及日志文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不要喷香水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值