Springboot日志配置探索(主要看logback)(二)

这篇博客主要是讲在Springboot中扩展的日志框架的配置,也是主要讲logback

8

继续看文档,这里讲到:

springboot里面还有几个日志系统框架可以选择使用,你可以通过在classpath中添加实当的库,或者更深层次的定制化:通过提供一个合适的配置文件在根目录正确的位置或者是放好在一个位置后,在application.properties中用logging.config属性来告诉spring,当然每个日志框架spring有建议的默认命名,这个在下一段会讲到。

你也可以让springboot用某个特定的框架~

这里提到,根据不同的日志系统,你可以按上面提到的规则组织配置文件名,就能被正确加载。Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项(下面会提到)。 

默认的命名规则,并且放在 src/main/resources 下面即可

如果你即想完全掌控日志配置,但又不想用logback.xml作为Logback配置的名字,application.yml可以通过logging.config属性指定自定义的名字

总的来说,要用更多配置的日志框架,要么就用它建议的配置文件命名,比如我们要用logback,就加个配置文件logback-spring.xml;或者是你自己定义了一个配置文件名,那么就要在applicaition.properties中logging.config告诉spring。      注意:如果我们使用指定日志系统的配置文件, application.properties 中相关的日志配置是可以不要的。

    

9

下面开始讲怎么用配置文件来扩展日志框架了:

首先提到,spring boot有很多关于logback的拓展可以让你有更高级的配置,你可以在logback-spring.xml中使用这些拓展。  这里提到拓展的内容不能用configuration scanning,不然会报错。

10

讲到了这个profile应该是涉及到多环境的问题

11

最后一个environment的设置大概就是logback的配置文件和application.properties的关系,大概就是怎样在logback的xml文件中像引入property一样引入application.propertiies的配置。

补充一下,关于这个引入了logback.xml后,怎么在xml中获取application.properties中的信息的问题,看到了两个写法:

1.,用springProperty:

application.properties代码:

logback.logdir=/Users/inke/dev/log/tomcat/sell
logback.appname=sell

在logback-spring.xml中:

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

    <!--application.yml 传递参数,不能使用logback 自带的<property>标签 -->
    <springProperty scope="context" name="appname" source="logback.appname"/>
    <springProperty scope="context" name="logdir" source="logback.logdir"/>

    <contextName>${appname}</contextName>

    <!--输出到控制台 ConsoleAppender-->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <!--展示格式 layout-->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            </pattern>
        </layout>
    </appender>
    。。。
    。。。

2.还有种写法,之前不是在文档中有提到这个配置的映射嘛:

然后我们在application.properties中,拿这个logging.path做例子,跟以前一样配置:

logging.path=C://feianzhuang/log/admin_log

然后看到上面的转换表中,有这个转换:

然后在logback-spring.xml中:

<File>${LOG_PATH}/info.log</File>

就行了。

其他具体的就看logback的配置文档吧~

总结一下:

springboot已经帮我们封装好了日志框架,可以直接使用。一般建议使用logback,因为springboot默认用的也是它。直接使用的方法就是直接在application.properties中进行简单的设置,可以指定日志输出位置,简单的格式设置,包的等级设置等操作。   使用的代码这里也给个例子(上一篇博客中的例子):

package com.stuPayment.uiController;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {
    
    private final Logger logger = LoggerFactory.getLogger(getClass());
    
    @RequestMapping("/test")
    public String testPage() {
        logger.trace("#######################hello this is trace");
        logger.debug("#######################hello this is debug");
        logger.info("#######################hello this is info");
        logger.warn("#######################hello this is warn");
        logger.error("#######################hello this is error");
        return "test";
    }
}

但如果想使用更复杂的logback配置,那么就要另外用xml配置文件,要么用规定好的配置文件命名——logback-spring.xml(在src/main/resource下面就好),也可以自己命名一个xml文件,但要在appliction.properties中用logging.config告诉spring,像下面这个例子一样:

logging.config=classpath:logging-config.xml

 然后关于这个logback的配置文件,可以到官网上看使用的方法或者是看别人的例子,这里有篇关于这个Logback.xml的配置讲得比较详细的博客:

https://blog.csdn.net/inke88/article/details/75007649

还有个现成可以用的xml(我觉得):

https://www.cnblogs.com/lspz/p/6473686.html

原文地址:https://www.cnblogs.com/wangshen31/p/9311050.html