logback-spring.xml配置
阅读原文时间:2023年07月10日阅读:1

logback-spring.xml配置



spring-boot-test

 <!--属性2:定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->  
 <property name="LOG\_PATH" value="D:\\data\\logs"/>  
 <!--appender用来格式化日志输出节点,有俩个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。-->  
 <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, -->  
 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

     <!--  
             Filter为系统定义的拦截器,例如我们用ThresholdFilter来过滤掉ERROR级别以下的日志不输出到文件中。如果不用记得注释掉,不然你控制台会发现没日志~  
     -->  
   <!--  <filter class="ch.qos.logback.classic.filter.ThresholdFilter">  
         <level>ERROR</level>  
     </filter>-->  
     <!--<encoder>表示对日志进行编码:-->  
     <!--  
         %d{HH: mm:ss.SSS}——日志输出时间  
         %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用  
         %-5level——日志级别,并且使用5个字符靠左对齐  
         %logger{36}——日志输出者的名字  
         %msg——日志消息  
         %n——平台的换行符  
     -->  
     <encoder>  
         <pattern>1-%d{yyyy-MM-dd HH:mm:ss} \[%thread\] %-5level %logger - %msg%n</pattern>  
         <charset>GBK</charset>  
     </encoder>  
 </appender>  
 <!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->  
<!-- <contextName>springboottest</contextName>-->

 <!--  
       说明:  
       1、日志级别及文件  
           日志记录采用分级记录,级别与日志文件名相对应,不同级别的日志信息记录到不同的日志文件中  
           例如:error级别记录到log\_error\_xxx.log或log\_error.log(该文件为当前记录的日志文件),而log\_error\_xxx.log为归档日志,  
           日志文件按日期记录,同一天内,若日志文件大小等于或大于2M,则按0、1、2...顺序分别命名  
           例如log-level-2013-12-21.0.log  
           其它级别的日志也是如此。  
       2、文件路径  
           若开发、测试用,在Eclipse中运行项目,则到Eclipse的安装路径查找logs文件夹,以相对路径../logs。  
           若部署到Tomcat下,则在Tomcat下的logs文件中  
       3、Appender  
           FILEERROR对应error级别,文件名以log-error-xxx.log形式命名  
           FILEWARN对应warn级别,文件名以log-warn-xxx.log形式命名  
           FILEINFO对应info级别,文件名以log-info-xxx.log形式命名  
           FILEDEBUG对应debug级别,文件名以log-debug-xxx.log形式命名  
           CONSOLE将日志信息输出到控制上,为方便开发测试使用  
    -->  
 <!-- 日志记录器,日期滚动记录 -->  
 <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">  
     <!-- 正在记录的日志文件的路径及文件名 -->  
     <file>${LOG\_PATH}/error/log\_error.log</file>  
     <!-- 日志记录器的滚动策略,按日期,按大小记录 -->  
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
         <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。  
         而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->  
         <fileNamePattern>${LOG\_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
        <!-- 表示只保留最近30天的日志,以防止日志填满整个磁盘空间。-->  
         <maxHistory>30</maxHistory>  
         <!--用来指定日志文件的上限大小,例如设置为1GB的话,那么到了这个值,就会删除旧的日志。-->  
         <totalSizeCap>1GB</totalSizeCap>  
         <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,  
         命名日志文件,例如log-error-2013-12-21.0.log -->  
         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
             <maxFileSize>2MB</maxFileSize>  
         </timeBasedFileNamingAndTriggeringPolicy>  
     </rollingPolicy>  
     <!-- 追加方式记录日志 -->  
     <append>true</append>  
     <!-- 日志文件的格式 -->  
     <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">  
         <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>  
         <charset>utf-8</charset>  
     </encoder>  
     <!-- 此日志文件只记录error级别的 -->  
     <filter class="ch.qos.logback.classic.filter.LevelFilter">  
         <level>error</level>  
         <onMatch>ACCEPT</onMatch>  
         <onMismatch>DENY</onMismatch>  
     </filter>  
 </appender>

 <!-- 日志记录器,日期滚动记录 -->  
 <appender name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender">  
     <!-- 正在记录的日志文件的路径及文件名 -->  
     <file>${LOG\_PATH}/warn/log\_warn.log</file>  
     <!-- 日志记录器的滚动策略,按日期,按大小记录 -->  
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
         <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。  
         而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->  
         <fileNamePattern>${LOG\_PATH}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
         <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,  
         命名日志文件,例如log-error-2013-12-21.0.log -->  
         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
             <maxFileSize>2MB</maxFileSize>  
         </timeBasedFileNamingAndTriggeringPolicy>  
     </rollingPolicy>  
     <!-- 追加方式记录日志 -->  
     <append>true</append>  
     <!-- 日志文件的格式 -->  
     <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">  
         <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>  
         <charset>utf-8</charset>  
     </encoder>  
     <!-- 此日志文件只记录war级别的 -->  
     <filter class="ch.qos.logback.classic.filter.LevelFilter">  
         <level>warn</level>  
         <onMatch>ACCEPT</onMatch>  
         <onMismatch>DENY</onMismatch>  
     </filter>  
 </appender>

 <!-- 日志记录器,日期滚动记录 -->  
 <appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">  
     <!-- 正在记录的日志文件的路径及文件名 -->  
     <file>${LOG\_PATH}\\info\\log\_info.log</file>  
     <!-- 日志记录器的滚动策略,按日期,按大小记录 -->  
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
         <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。  
         而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->  
         <fileNamePattern>${LOG\_PATH}\\info\\log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
         <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,  
         命名日志文件,例如log-error-2013-12-21.0.log -->  
         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
             <maxFileSize>2MB</maxFileSize>  
         </timeBasedFileNamingAndTriggeringPolicy>  
     </rollingPolicy>  
     <!-- 追加方式记录日志 -->  
     <append>true</append>  
     <!-- 日志文件的格式 -->  
     <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">  
         <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>  
         <charset>utf-8</charset>  
     </encoder>  
     <!-- 此日志文件只记录info级别的 -->  
     <filter class="ch.qos.logback.classic.filter.LevelFilter">  
         <level>info</level>  
         <onMatch>ACCEPT</onMatch>  
         <onMismatch>DENY</onMismatch>  
     </filter>  
 </appender>  
 <!--日志异步到数据库  -->  
 <!--<appender name="DBAPPENDER" class="ch.qos.logback.classic.db.DBAppender">-->  
 <!--<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">-->  
 <!--<dataSource class="com.zaxxer.hikari.HikariDataSource">-->  
 <!--<driverClassName>com.mysql.jdbc.Driver</driverClassName>-->  
 <!--<jdbcUrl>jdbc:mysql://localhost:3306/albedo-new?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false</jdbcUrl>-->  
 <!--<username>root</username>-->  
 <!--<password>123456</password>-->  
 <!--<poolName>HikariPool-logback</poolName>-->  
 <!--</dataSource>-->  
 <!--</connectionSource>-->  
 <!--&lt;!&ndash; 此日志文件只记录info级别的 &ndash;&gt;-->  
 <!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->  
 <!--<level>warn</level>-->  
 <!--<onMatch>ACCEPT</onMatch>-->  
 <!--<onMismatch>DENY</onMismatch>-->  
 <!--</filter>-->  
 <!--&lt;!&ndash; 此日志文件只记录info级别的 &ndash;&gt;-->  
 <!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->  
 <!--<level>error</level>-->  
 <!--<onMatch>ACCEPT</onMatch>-->  
 <!--<onMismatch>DENY</onMismatch>-->  
 <!--</filter>-->  
 <!--</appender>-->  
 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">  
     <encoder>  
         <pattern>%black(控制台-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS})  %green(\[%thread\]) %highlight(%-5level) %boldMagenta(%logger) Line:%-3L - %cyan(%msg%n)</pattern>  
         <!--<charset>GBK</charset>-->  
     </encoder>  
 </appender>  







 <!--<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">-->  
 <!--<resetJUL>true</resetJUL>-->  
 <!--</contextListener>-->  
 <!--root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。-->  
<!-- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。  
 默认是DEBUG。  
 可以包含零个或多个元素,标识这个appender将会添加到这个logger。-->

<!-- springProfile多环境日志输出,据不同环境(prod:生产环境,test:测试环境,dev:开发环境)来定义不同的日志输出-->  
 <springProfile name="prod">  
     <root level="DEBUG">  
         <!--<appender-ref ref="FILEERROR"/>-->  
         <!--<appender-ref ref="FILEWARN"/>-->  
         <!--<appender-ref ref="FILEINFO"/>-->  
         <!--<appender-ref ref="DBAPPENDER"/>-->  
         <appender-ref ref="STDOUT"/>

     </root>  
 </springProfile>

 <springProfile name="dev,test">  
     <root level="INFO">  
         <!--<appender-ref ref="FILEERROR"/>-->  
         <!--<appender-ref ref="FILEWARN"/>-->  
         <appender-ref ref="FILEINFO"/>  
         <!--<appender-ref ref="DBAPPENDER"/>-->  
         <!--<appender-ref ref="CONSOLE"/>-->

     </root>  
 </springProfile>

<!-- 可以启动服务的时候指定 profile (如不指定使用默认),如指定prod 的方式为:  
 java -jar xxx.jar –spring.profiles.active=prod-->

application.yxm配置

server:
port: 8894

spring:
datasource:
url : jdbc:mysql://localhost:3306/kfbbiz
username : root
password : 123456
driverClassName : com.mysql.jdbc.Driver
jpa:
database : MYSQL
show-sql : true
hibernate:
ddl-auto : update
naming-strategy : org.hibernate.cfg.ImprovedNamingStrategy
properties:
hibernate:
dialect : org.hibernate.dialect.MySQL5Dialect
thymeleaf:
mode: HTML
messages:
encoding: UTF-8
basename: i18n/messages

profiles:
active: dev

application-dev.xml配置