zoukankan      html  css  js  c++  java
  • logback-spring.xml配置说明

    logback-spring.xml的配置说明

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration scan="true">
    <!--属性1:每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改,可以通过%contextName来打印日志上下文名称。-->
        <contextName>spring-boot-test</contextName>
    
        <!--属性2:定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
        <property name="LOG_PATH" value="D:datalogs"/>
        <!--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}infolog_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}infolog-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>
    <!--
        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。<logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。
    -->
        <logger name="com.yxm.test" level="DEBUG"/>
        <logger name="org.springframework" level="INFO"/>
        <logger name="org.apache" level="ERROR"/>
        <logger name="org.hibernate.validator" level="ERROR"/>
        <logger name="org.thymeleaf" level="ERROR"/>
        <logger name="org.springframework.context.annotation" level="ERROR"/>
    
    
        <!--<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-->
    
    </configuration>

    参考源:https://www.cnblogs.com/xm-02/p/9109563.html

  • 相关阅读:
    AX 2012 Security Framework
    The new concept 'Model' in AX 2012
    How to debug the SSRS report in AX 2012
    Using The 'Report Data Provider' As The Data Source For AX 2012 SSRS Report
    Deploy SSRS Report In AX 2012
    AX 2012 SSRS Report Data Source Type
    《Taurus Database: How to be Fast, Available, and Frugal in the Cloud》阅读笔记
    图分析理论 大纲小结
    一文快速了解Posix IO 缓冲
    #转载备忘# Linux程序调试工具
  • 原文地址:https://www.cnblogs.com/yishilin/p/12893822.html
Copyright © 2011-2022 走看看