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

Logback日志基礎(chǔ)及自定義配置代碼實(shí)例

 更新時(shí)間:2020年09月17日 12:01:39   作者:賈樹丙  
這篇文章主要介紹了Logback日志基礎(chǔ)及自定義配置代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Logback日志基礎(chǔ)配置

logback日志配置有很多介紹,但是有幾個(gè)非常基礎(chǔ)的,容易忽略的。下面是最簡(jiǎn)單的一個(gè)配置,注意加粗的描述

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="30 seconds">

  <!--log.path定義的是局部變量,./logs指定的是相對(duì)路徑下的文件夾logs-->
  <property name="log.path" value="./logs"/>

  <appender name="ROLLING-FILE-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender">

    <!--這里的文件名是不能使用正則表達(dá)式,只能是定死的名字,實(shí)現(xiàn)了很久-->
    <file>${log.path}/errorlog.log</file>

    <!-- 日志輸出格式:%d表示日期時(shí)間,%thread表示線程名,%-5level:級(jí)別從左顯示5個(gè)字符寬度
       %logger{50} 表示logger名字最長(zhǎng)50個(gè)字符,否則按照句點(diǎn)分割。 %msg:日志消息,%n是換行符 -->
    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- 每天日志歸檔路徑以及格式,可以不使用log后綴,%i:當(dāng)文件大小超過maxFileSize時(shí),按照i進(jìn)行文件滾動(dòng),i從0開始滾動(dòng) -->
      <FileNamePattern>${log.pat h}/errorlog.%d{yyyyMMdd}.log.%i.gz</FileNamePattern>
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>4096MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
      <!--日志文件保留天數(shù)-->
      <maxHistory>365</maxHistory>
    </rollingPolicy>
  </appender>

  <!-- 日志級(jí)別-->
  <root level="debug">   
    <appender-ref ref="ROLLING-FILE-OUT"/>
  </root>

</configuration>

在規(guī)范里,行結(jié)束符往往采用Linux結(jié)束符(\n),而不是上面那樣的 %n。 這個(gè)\n ,使用txt文檔查看,并沒有換行

使用%的正則還有許許多多,比如如下:

<property name="CONSOLE_LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %yellow(%thread) | %green(%logger) | %msg%n"/>

再比如:%contextName 作用是 顯示主機(jī)名

Logback日志自定義配置

即便如此,還是有很多想要的東西顯示不了,這時(shí)就可自定義配置。比如我希望每條日志有個(gè)uuid類型的id,希望每條日志能打印ip地址

一、新建兩個(gè)配置類,重寫convert方法

package cn.jiashubing.config.logback;

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import java.util.UUID;

public class LogIdConfig extends ClassicConverter {

  @Override
  public String convert(ILoggingEvent event) {
    return UUID.randomUUID().toString().replaceAll("-", "");
  }
}


package cn.jiashubing.config.logback;

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class IPLogConfig extends ClassicConverter {

  @Override
  public String convert(ILoggingEvent event) {
    try {
      return InetAddress.getLocalHost().getHostAddress();
    } catch (UnknownHostException e) {
      e.printStackTrace();
    }
    return null;
  }
}

二、配置日志文件

<property name="log.path" value="./logs"/>
<conversionRule conversionWord="ip" converterClass="cn.jiashubing.config.logback.IPLogConfig" />
<conversionRule conversionWord="logid" converterClass="cn.jiashubing.config.logback.LogIdConfig" />

<appender name="ROLLING-FILE-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender">       
  <file>${log.path}/errorlog.log</file>       
  <encoder>           
    <pattern>[loglevel=%level] [timestamp=%d{yyyy-MM-dd HH:mm:ss}] [logid=%logid] [ip=%ip] [cmd=%msg] \n</pattern>       
  </encoder>
  ...
</appender>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot+Tess4j實(shí)現(xiàn)牛的OCR識(shí)別工具的示例代碼

    SpringBoot+Tess4j實(shí)現(xiàn)牛的OCR識(shí)別工具的示例代碼

    這篇文章主要介紹了SpringBoot+Tess4j實(shí)現(xiàn)牛的OCR識(shí)別工具的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java實(shí)現(xiàn)從方法返回多個(gè)值功能示例

    java實(shí)現(xiàn)從方法返回多個(gè)值功能示例

    這篇文章主要介紹了java實(shí)現(xiàn)從方法返回多個(gè)值功能,結(jié)合實(shí)例形式分析了集合類、封裝對(duì)象、引用傳遞三種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-10-10
  • springboot?@Async?注解如何實(shí)現(xiàn)方法異步

    springboot?@Async?注解如何實(shí)現(xiàn)方法異步

    這篇文章主要介紹了springboot?@Async?注解如何實(shí)現(xiàn)方法異步,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot使用JUL實(shí)現(xiàn)日志記錄功能

    SpringBoot使用JUL實(shí)現(xiàn)日志記錄功能

    在SpringBoot中,我們可以使用多種日志框架進(jìn)行日志記錄,其中,JUL(Java Util Logging)是Java平臺(tái)自帶的日志框架,它提供了簡(jiǎn)單的 API 和配置,可以輕松地進(jìn)行日志記錄,本文將介紹如何在 SpringBoot中使用JUL進(jìn)行日志記錄,并提供示例代碼
    2023-06-06
  • Java打包Jar包后使用腳本執(zhí)行

    Java打包Jar包后使用腳本執(zhí)行

    本文詳細(xì)講解了Java打包Jar包后使用腳本執(zhí)行的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 淺談java的接口和C++虛類的相同和不同之處

    淺談java的接口和C++虛類的相同和不同之處

    下面小編就為大家?guī)硪黄獪\談java的接口和C++虛類的相同和不同之處。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-12-12
  • 關(guān)于Maven生命周期相關(guān)命令演示

    關(guān)于Maven生命周期相關(guān)命令演示

    Maven的生命周期分為Clean、Default和Site三個(gè)主要階段,每個(gè)階段包含多個(gè)關(guān)鍵步驟,如清理、編譯、測(cè)試、打包等,通過執(zhí)行相應(yīng)的Maven命令,可以高效地管理和構(gòu)建Java項(xiàng)目
    2025-01-01
  • Spring?Boot?Nacos?實(shí)現(xiàn)不停服發(fā)布過程詳解

    Spring?Boot?Nacos?實(shí)現(xiàn)不停服發(fā)布過程詳解

    這篇文章主要為大家介紹了Spring?Boot?Nacos實(shí)現(xiàn)不停服發(fā)布過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 解決Spring在Thread中注入Bean無效的問題

    解決Spring在Thread中注入Bean無效的問題

    這篇文章主要介紹了解決Spring在Thread中注入Bean無效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問題

    解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問題

    今天小編就為大家分享一篇解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評(píng)論

鹿邑县| 鄂温| 中阳县| 穆棱市| 安平县| 聂荣县| 牟定县| 邵阳县| 黄大仙区| 霞浦县| 五华县| 深泽县| 阳山县| 行唐县| 青海省| 永吉县| 姚安县| 韶山市| 西乡县| 密云县| 绩溪县| 玉龙| 林甸县| 辽阳市| 长治市| 铁岭县| 定州市| 乌兰浩特市| 平乐县| 六盘水市| 萨迦县| 凤山县| 乾安县| 万州区| 会理县| 衡阳县| 泗洪县| 堆龙德庆县| 翁源县| 九江县| 高邑县|