最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何使用logback-spring配置日志格式,并分環(huán)境配置

 更新時間:2021年07月14日 15:48:59   作者:侯賽雷  
這篇文章主要介紹了springboot如何使用logback-spring配置日志格式,并分環(huán)境配置的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

配置不生效的解決辦法

注意:如果配置不生效,則說明spring優(yōu)先加載了其他配置:

解決辦法:

  1. 添加啟動參數(shù) -Dlogging.config=classpath:logback-spring.xml
  2. 修改名字為 logback.xml, SpringBoot首先去查找標準的日志配置文件,如果找不到在去找拼接Spring的配置的文件, 標準文件名: "logback-test.groovy", "logback-test.xml", "logback.groovy","logback.xml" 等
  3. 排除 第三方jar包中的日志配置

springboot中使用這個LoggingApplicationListener類進行初始化,具體流程可查源碼

logback-spring結尾的可以使用springboot的分環(huán)境注入特性:

直接貼代碼,放到resource下面就行了:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!-- logback-spring 的文件可以基于環(huán)境配置,相對路徑會默認成項目根目錄開始 -->
    <springProfile name="comp">
        <property name="LOG_HOME" value="/home/houzheng/logs"/>
    </springProfile>
    <!-- home環(huán)境,windows -->
    <springProfile name="home">
        <property name="LOG_HOME" value="D:/logs"/>
    </springProfile>
    <!--控制臺輸出appender-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--設置輸出格式-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!--設置編碼-->
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <!--文件輸出,時間窗口滾動-->
    <appender name="timeFileOutput" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--日志名,指定最新的文件名,其他文件名使用FileNamePattern -->
        <File>${LOG_HOME}/timeFile/out.log</File>
        <!--文件滾動模式-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件輸出的文件名,可設置文件類型為gz,開啟文件壓縮-->
            <FileNamePattern>${LOG_HOME}/timeFile/info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <!--日志文件保留天數(shù)-->
            <MaxHistory>30</MaxHistory>
            <!--按大小分割同一天的-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <!--輸出格式-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!--設置編碼-->
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <!--指定基礎的日志輸出級別-->
    <root level="INFO">
        <!--appender將會添加到這個loger-->
        <appender-ref ref="console"/>
        <appender-ref ref="timeFileOutput"/>
    </root>
    <!-- 單獨指定某個包的日志打印,級別,appender等   -->
    <!-- addtivity: 可選。是否向上級 loger(也就是 root 節(jié)點)傳遞打印信息。默認為 true,
        設置addtivity是因為這里已經(jīng)指定了appender,如果再向上傳遞就會被root下的appender再次打印 -->
<!--    <logger name="com.hou.postgresql.user.service.impl.TestUserServiceImpl" level="WARN" addtivity="false">-->
<!--        <appender-ref ref="console"/>-->
<!--    </logger>-->
     <!-- 單獨指定某個包的日志打印,級別,appender等,也可以在代碼中使用 name屬性獲取 LoggerFactory.getLogger("LogName");   -->
     <logger name="AudiLogNameFormat" level="info" additivity="false">
        <appender-ref ref="Log"/>
    </logger>
</configuration>

Springboot項目下的logback.xml

直接上模板,其中有注釋,在現(xiàn)有的項目里拷出來的。

<configuration>
    <!-- %m輸出的信息,%p日志級別,%t線程名,%d日期,%c類的全名,,,, -->
    
    <!-- 定義一個控制臺輸出的appender -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %p (%file:%line\)- %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    
    <!-- 定義一個變量 下面可以引用 -->
    <property name="LOG_HOME" value="/log" />
	<!-- 定義一個sql語句的日志文件存放位置 格式 規(guī)則 等信息 -->
    <appender name="mysqllog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志文件路徑 與項目同級 -->
        <File>${LOG_HOME}/mysql.log</File>
        <!-- 日志內容規(guī)則 編碼方式 -->
        <encoder>
            <pattern>
                %d %p (%file:%line\)- %m%n
            </pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- 設置日志的分文件規(guī)則 以及命名 個人理解默認按天來分 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/mysql.log.%d.%i</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 設置日志文件最大size -->
                <maxFileSize>64 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
	<!-- 定義一個error的日志文件存放位置 格式 規(guī)則 等信息 -->
    <appender name="errorlog"
             class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志文件路徑 與項目同級 -->
        <File>${LOG_HOME}/mysql.log</File>
        <!-- 日志內容規(guī)則 編碼方式 -->
        <encoder>
            <pattern>
                %d %p (%file:%line\)- %m%n
            </pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!-- 設置日志的分文件規(guī)則 以及命名 個人理解默認按天來分 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/mysql.log.%d.%i</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 設置日志文件最大size -->
                <maxFileSize>64 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
	<!-- 設置root全局日志的控制臺 使用上面第一個定義的'STDOUT' -->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
    </root>
	<!-- 設置mapper相應目錄下的sql語句的輸出 使用了定義的'mysqllog'和'STDOUT' 其中'mysqllog'是輸出到文件中 'STDOUT'是控制臺 
	additivity是否追加到root中 默認true 如果為true則會在debug時打印兩條sql 所以這里為false -->
    <logger name="com.xxx.mapper" level="DEBUG" additivity="false">
        <appender-ref ref="mysqllog" />
        <appender-ref ref="STDOUT" />
    </logger>
    <logger name="com.mytian.service" level="WARN">
    </logger>
</configuration>

在項目中使用時:

Logger logger = LoggerFactory.getLogger(所在類名.class);

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java微信公眾號開發(fā)之通過微信公眾號獲取用戶信息

    Java微信公眾號開發(fā)之通過微信公眾號獲取用戶信息

    這篇文章主要介紹了Java微信公眾號開發(fā)之通過微信公眾號獲取用戶信息,需要的朋友可以參考下
    2017-05-05
  • SpringMvc中容器加載的過程源碼詳解

    SpringMvc中容器加載的過程源碼詳解

    這篇文章主要介紹了SpringMvc中容器加載的過程源碼詳解,springmvc是基于spring的一個web層框架,同樣也是web層框架的有struts,struts2等等,但是struts因為漏洞等問題,被慢慢淘汰了,現(xiàn)在基本都在用springmvc,需要的朋友可以參考下
    2023-11-11
  • Java超詳細講解三大特性之一的多態(tài)

    Java超詳細講解三大特性之一的多態(tài)

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發(fā)出的方法調用到底是哪個類中實現(xiàn)的方法,必須在由程序運行期間才能決定
    2022-05-05
  • mybatis中BigDecimal中的0存為null的坑及解決

    mybatis中BigDecimal中的0存為null的坑及解決

    在使用MyBatis進行數(shù)據(jù)庫操作時,若Java中屬性類型為BigDecimal且值為0,插入數(shù)據(jù)庫時可能會變?yōu)閚ull,而不是0,這個問題可能是由于MyBatis在處理BigDecimal類型時的弱類型判斷導致的,當BigDecimal變量與空字符串進行比較時,MyBatis可能將其視為null
    2024-10-10
  • java調用chatgpt接口來實現(xiàn)專屬于自己的人工智能助手

    java調用chatgpt接口來實現(xiàn)專屬于自己的人工智能助手

    這篇文章主要介紹了用java來調用chatget的接口,實現(xiàn)自己的聊天機器人,對人工智能感興趣的小伙伴可以參考閱讀
    2023-03-03
  • 如何使用Spring Security實現(xiàn)用戶-角色-資源的權限控制

    如何使用Spring Security實現(xiàn)用戶-角色-資源的權限控制

    文章介紹了如何通過SpringSecurity實現(xiàn)用戶-角色-資源的權限管理,包括基于角色的請求控制、加載用戶角色信息、角色與資源的關聯(lián)等步驟,同時,提供了一些測試場景,以驗證權限控制是否正確,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Java操作IO對象流進行數(shù)據(jù)的讀寫

    Java操作IO對象流進行數(shù)據(jù)的讀寫

    這篇文章主要介紹了Java操作IO對象流進行數(shù)據(jù)的讀寫,本文通過例子逐步介紹了java如何操作IO流,和文字解析,需要的朋友可以參考下
    2021-07-07
  • IntelliJ IDEA下Maven創(chuàng)建Scala項目的方法步驟

    IntelliJ IDEA下Maven創(chuàng)建Scala項目的方法步驟

    這篇文章主要介紹了IntelliJ IDEA下Maven創(chuàng)建Scala項目的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • java數(shù)據(jù)結構和算法中哈希表知識點詳解

    java數(shù)據(jù)結構和算法中哈希表知識點詳解

    在本篇文章里小編給大家分享了關于java數(shù)據(jù)結構和算法中哈希表的相關知識點內容,需要的朋友們學習下。
    2019-06-06
  • Spring Boot集成SpringFox 3.0與Pageable參數(shù)處理方法

    Spring Boot集成SpringFox 3.0與Pageable參數(shù)處理方法

    這篇文章主要介紹了Spring Boot集成SpringFox 3.0與Pageable參數(shù)處理,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-10-10

最新評論

获嘉县| 威信县| 敦化市| 定边县| 莱州市| 正蓝旗| 高台县| 布拖县| 葫芦岛市| 思南县| 天等县| 翁源县| 龙里县| 锦屏县| 阿鲁科尔沁旗| 贺州市| 通许县| 祥云县| 清苑县| 隆子县| 同心县| 彰化县| 民勤县| 镇江市| 大方县| 珠海市| 东城区| 石屏县| 吴堡县| 乃东县| 武夷山市| 白玉县| 五常市| 珲春市| 邢台县| 通海县| 罗山县| 三原县| 贵溪市| 鄂尔多斯市| 孟村|