springboot添加日志框架

如果不使用日志框架配置,springboot默认将日志输出到控制台,不会输出到日志文件,若想输出到日志文件,可在配置文件中进行配置:

  • logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:logging.file=my.log

  • logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:logging.path=/log

备注:二者不能同时使用,

日常搭建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

#\u8F93\u51FA\u5230\u63A7\u5236\u53F0 
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

#\u6BCF\u5929\u751F\u6210\u4E00\u4E2A\u65E5\u5FD7\u6587\u4EF6
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

# \u6570\u636E\u5E93\u8F93\u51FA
#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')
# \u5F00\u53D1\u670D\u6570\u636E\u5E93
#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')

 

posted @ 2020-04-21 14:10  梓铭君  阅读(674)  评论(0编辑  收藏  举报