springboot添加日志框架

Posted 梓铭君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot添加日志框架相关的知识,希望对你有一定的参考价值。

日常搭建springboot项目,使用springboot自带的日志框架即可,spirngboot自带的日志框架为:logback。

logback使用

maven依赖导入:

 

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

 配置文件配置:

  在src/main/resources 添加日志配置文件,其中 logback配置文件命名为:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy。

  springboot推荐使用带-spring后缀的配置文件。

  或者可以在application.properties配置文件中指定日志文件地址(在启动不同的配置文件时可以使用,平时一般不用):

  logging.config=classpath:logging-config.xml

  日志文件具体内容:

<?xml version="1.0" encoding="UTF-8"?>
<!--配置一天一个日志文件,info信息存在一个文件中,error信息存在一个文件中-->
<configuration>
    <!--日志文件输出路径-->
    <property name="LOG_HOME" value="log"/>
    <property name="PATTERN_VALUE" value="%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) [ %thread ] - %highlight([ %-5level ]) %green([ %logger{50} : %line ]) - %boldMagenta(%msg%n)"/>
    <!--配置控制台打印信息-->
    <appender name="ConsoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!--格式化输出:%d:表示日期    %thread:表示线程名     %-5level:级别从左显示5个字符宽度  %msg:日志消息    %n:是换行符-->
            <pattern>
                ${PATTERN_VALUE}
            </pattern>
        </layout>
    </appender>
    <!--配置info文件-->
    <appender name="InfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <!--过来命中就过滤掉-->
            <onMatch>DENY</onMatch>
            <!--没有命中就接受-->
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <charset>UTF-8</charset>
            <pattern>
                ${PATTERN_VALUE}
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>${LOG_HOME}/info.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <!--保存的时间(天数)-->
            <maxHistory>7</maxHistory>
            <!--日志文件的总大小-->
            <totalSizeCap>10GB</totalSizeCap>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
    <!--配置error文件-->
    <appender name="ErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <charset>UTF-8</charset>
            <pattern>
                ${PATTERN_VALUE}
            </pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/error.%d.log</fileNamePattern>
            <maxHistory>15</maxHistory>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
    </appender>
    <!--加载配置项-->
    <root level="INFO">
        <appender-ref ref="ConsoleLog"/>
        <appender-ref ref="InfoLog"/>
        <appender-ref ref="ErrorLog"/>
    </root>
</configuration>

 

  彩蛋:

  日志文件可以控制输出日志颜色,添加配置:%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) 可以实现功能。具体颜色可以自定义切换。

%red(%d{yyyy-MM-dd HH:mm:ss.SSS})

 

 

log4j使用

maven依赖导入:

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j</artifactId>
        <version>1.3.8.RELEASE</version>
    </dependency>

 

 配置文件配置:

  在src/main/resources 添加日志配置文件,其中 logback配置文件命名为:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml。

  springboot推荐使用带-spring后缀的配置文件。

  或者可以在application.properties配置文件中指定日志文件地址(在启动不同的配置文件时可以使用,平时一般不用):

  logging.config=classpath:logging-config.xml

日志文件具体内容

log4j.rootLogger=INFO,CONSOLE,day
log4j.appender.logfile.encoding=GBK

#u8F93u51FAu5230u63A7u5236u53F0 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%l] %m%n

#u6BCFu5929u751Fu6210u4E00u4E2Au65E5u5FD7u6587u4EF6
log4j.appender.day=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.day.File=logs/log.log
log4j.appender.day.Threshold=INFO
log4j.appender.day.DatePattern=‘.‘yyyy-MM-dd
log4j.appender.day.MaxBackupIndex=30
log4j.appender.day.Append=true
log4j.appender.day.layout=org.apache.log4j.PatternLayout
log4j.appender.day.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%l] %m%n

# u6570u636Eu5E93u8F93u51FA
#log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.jdbc.driver=com.mysql.jdbc.Driver
#log4j.appender.jdbc.URL=jdbc:mysql://
#log4j.appender.jdbc.user=
#log4j.appender.jdbc.password=
#log4j.appender.jdbc.sql=insert into log_icecoldmonitor(level,category,thread,time,location,note) values(‘%p‘,‘%c‘,‘%t‘,‘%d{yyyy-MM-dd HH:mm:ss:SSS}‘,‘%l‘,‘%m‘)
# u5F00u53D1u670Du6570u636Eu5E93
#log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.jdbc.driver=com.mysql.jdbc.Driver
#log4j.appender.jdbc.URL=jdbc:mysql://bj-cdb-4nedn1d3.sql.tencentcdb.com:63994/easyrecord?useSSL=false
#log4j.appender.jdbc.user=easyrecorddev
#log4j.appender.jdbc.password=easyrecorddev!@#
#log4j.appender.jdbc.sql=insert into log_icecoldmonitor(level,category,thread,time,location,note) values(‘%p‘,‘%c‘,‘%t‘,‘%d{yyyy-MM-dd HH:mm:ss:SSS}‘,‘%l‘,‘%m‘)

 

以上是关于springboot添加日志框架的主要内容,如果未能解决你的问题,请参考以下文章

springboot 日志框架

springboot 怎么看日志

docker安装ELK 收集springboot日志(方法1)

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

springboot使用之三:springboot使用logback日志

SpringBoot日志框架选型——Log4j2的配置与使用