zoukankan      html  css  js  c++  java
  • springboot日志框架

    Spring Boot日志框架
    Spring Boot支持Java Util Logging,Log4j2,Lockback作为日志框架,如果你使用starters启动器,Spring Boot将使用Logback作为默认日志框架。无论使用哪种日志框架,Spring Boot都支持配置将日志输出到控制台或者文件中。
    spring-boot-starter启动器包含spring-boot-starter-logging启动器并集成了slf4j日志抽象及Logback日志框架。

    自定义日志文件
    根据不同的日志框架,默认加载的日志配置文件的文件名,放在资源根目录下,其他的目录及文件名不能被加载。
    Logging SystemCustomization
    Logback logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
    Log4j2 log4j2-spring.xml or log4j2.xml
    JDK (Java Util Logging) logging.properties

    既然默认自带了Logback框架,Logback也是最优秀的日志框架,往资源目录下创建一个logback-spring.xml即可,下面是一个参考配置文件。
     
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration  scan="true" scanPeriod="60 seconds" debug="false">
        <contextName>logback</contextName>
        <!--输出到控制台-->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <!--按天生成日志-->
        <appender name="logFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <Prudent>true</Prudent>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>
                    applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
                </FileNamePattern>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>
                    %d{yyyy-MM-dd HH:mm:ss} -%msg%n
                </Pattern>
            </layout>
        </appender>
    
        <logger name="com.bootdo" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile" />
        </logger>
    
        <root level="error">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile" />
        </root>
    
    </configuration>

    强烈推荐使用logback-spring.xml作为文件名,因为logback.xml加载太早。

    日志初始化在ApplicationContext创建之前,所以@PropertySources加载的配置是读取不到的,系统环境变量、Spring Environment及application,bootstrap配置文件中的信息可以读取到。
     
    读取系统环境属性:
    <property name="LOG_PATH" value="${LOG_PATH:-E:/logs}" />

    读取当前应用Environment中的属性:

    <springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"   defaultValue="localhost"/>

    Spring Boot也支持通过springProfile来加载不同profiles下的配置。

    <springProfile name="staging">    
    <!-- configuration to be enabled when the "staging" profile is active -->
    </springProfile><springProfile name="dev, staging">    
    <!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
    </springProfile><springProfile name="!production">    
    <!-- configuration to be enabled when the "production" profile is not active -->
    </springProfile>
  • 相关阅读:
    javascript之理解参数按值传递
    javascript之模仿jQuery实现框架雏形
    javascript之正则表达式学习笔记
    python常用算法了解
    爬虫_小结04
    爬虫_小结03
    爬虫_小结02
    爬虫_小结01
    IO 模型
    数据库,前端和框架须知
  • 原文地址:https://www.cnblogs.com/xyhero/p/9142cc43a04271e41217b2166f050b2d.html
Copyright © 2011-2022 走看看