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

spring boot自定義log4j2日志文件的實例講解

 更新時間:2017年11月30日 08:39:51   作者:秉空杯初心  
下面小編就為大家分享一篇spring boot自定義log4j2日志文件的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

背景:因為從 spring boot 1.4開始的版本就要用log4j2 了,支持的格式有json和xml兩種格式,此次實踐主要使用的是xml的格式定義日志說明。

spring boot 1.5.8.RELEASE 引入log4j2的開發(fā)步驟如下:

1.首先把spring-boot-starter-web以及spring-boot-starter包下面的spring-boot-starter-logging排除,然后引入spring-boot-starter-log4j2包。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <exclusions>
   <exclusion>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-logging</artifactId>
   </exclusion>
  </exclusions>
</dependency>

 <!--https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-log4j2</artifactId>
  <version>1.5.8.RELEASE</version>
</dependency>

2.pom中設置文件資源位置,以便通過pom中的properties修改文件中的變量。

<finalName>${project.name}</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
  <resource>
   <directory>src/main/resources</directory>
   <filtering>true</filtering>
   <includes>
     <include>**/*</include>
   </includes>
  </resource>
</resources>

設置變量替換屬性

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
  <log4j2.level>debug</log4j2.level>
  <log4j2.root.path>/opt/appstack/apache-tomcat/logs/${project.name}</log4j2.root.path>
  <log4j2.error.path>/opt/appstack/apache-tomcat/logs/${project.name}-error</log4j2.error.path>
  <log4j2.package.path>/opt/appstack/apache-tomcat/logs/${project.name}-kk</log4j2.package.path>
</properties>

3.因為spring boot對配置文件yml或者properties有保護作用,因此pom中的變量需要添加一個插件才能夠替換配置文件中的變量。

<pluginManagement>
  <plugins>
   <plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
   <!--spring-boot為了保護application.yml和application.properties,修改了默認的占位符${...}為@...@-->
   <!--為了spring boot的yml和properties文件能夠使用maven變量替換,使用${}占位符-->
   <plugin>
     <artifactId>maven-resources-plugin</artifactId>
     <configuration>
      <encoding>utf-8</encoding>
      <useDefaultDelimiters>true</useDefaultDelimiters>
     </configuration>
   </plugin>
  </plugins>
</pluginManagement>

4.本示例采用的是spring boot的yml配置,在application.yml中配置log4j2的配置文件

logging:
config: classpath:log4j2.xml

如果想對不同環(huán)境配置不同的log4j2的配置文件,可以在相應的application.yml中設置config值

5.配置log4j2.xml的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<configuration status="WARN">
  <!--全局參數-->
  <Properties>
    <Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n</Property>
  </Properties>
  <Loggers>
    <Root level="DEBUG">
      <AppenderRef ref="console"></AppenderRef>
      <AppenderRef ref="rolling_file"></AppenderRef>
    </Root>
    <!--只將com.kk.springboot.demo寫到文件-->
    <Logger name="com.kk.springboot.demo" level="${log4j2.level}">
      <AppenderRef ref="file"></AppenderRef>
    </Logger>
  </Loggers>
  <Appenders>
    <Console name="console" target="SYSTEM_OUT" follow="true">
      <!--控制臺只輸出level及以上級別的信息-->
      <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
      <PatternLayout>
        <Pattern>${pattern}</Pattern>
      </PatternLayout>
    </Console>
    <!-- 同一來源的Appender可以定義多個RollingFile,定義按天存儲日志 -->
    <RollingFile name="rolling_file"
           fileName="${log4j2.root.path}.log"
           filePattern="${log4j2.root.path}_%d{yyyy-MM-dd}.log">
      <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
      <PatternLayout>
        <Pattern>${pattern}</Pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1"/>
        <!--<SizeBasedTriggeringPolicy size="1 KB"/>-->
      </Policies>
    </RollingFile>
    <File name="file" fileName="${log4j2.package.path}.log">
      <!--&lt;!&ndash;控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)&ndash;&gt;-->
      <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
      <PatternLayout>
        <Pattern>${pattern}</Pattern>
      </PatternLayout>
    </File>
  </Appenders>
</configuration>

6.Java程序代碼中使用log4j2日志。

private static Logger log = LoggerFactory.getLogger(UserController.class);
log.info("enter in entityParam");......

7.通過改動系統時間,測試日志按天存儲配置。

以上這篇spring boot自定義log4j2日志文件的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解springboot采用多數據源對JdbcTemplate配置的方法

    詳解springboot采用多數據源對JdbcTemplate配置的方法

    在本篇文章中我們給大家詳細分享了springboot采用多數據源對JdbcTemplate配置的方法,有需要的朋友們可以學習參考下。
    2018-10-10
  • java使用Rxtx實現串口通信調試工具

    java使用Rxtx實現串口通信調試工具

    這篇文章主要為大家詳細介紹了java使用Rxtx實現簡單串口通信調試工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 關于java數組與字符串相互轉換的問題

    關于java數組與字符串相互轉換的問題

    這篇文章主要介紹了java數組與字符串相互轉換的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 從JVM的內存管理角度分析Java的GC垃圾回收機制

    從JVM的內存管理角度分析Java的GC垃圾回收機制

    這篇文章主要介紹了從JVM的內存管理角度分析Java的GC垃圾回收機制,帶有GC是Java語言的重要特性之一,需要的朋友可以參考下
    2015-11-11
  • 以用戶名注冊為例分析三種Action獲取數據的方式

    以用戶名注冊為例分析三種Action獲取數據的方式

    這篇文章主要介紹了以用戶名注冊為例分析三種Action獲取數據的方式的相關資料,需要的朋友可以參考下
    2016-03-03
  • Java中的函數式編程

    Java中的函數式編程

    這篇文章介紹Java中的函數式編程,函數式編程是一種編程范式,其中程序是通過應用和組合函數來構造的。它是一種聲明式編程范式,其中函數定義是表達式樹,每個表達式樹返回一個值,而不是一系列改變程序狀態(tài)的命令語句,具體情況請看下文,希望對你有所幫助
    2021-10-10
  • Java中的Sentinel持久化規(guī)則啟動

    Java中的Sentinel持久化規(guī)則啟動

    這篇文章主要介紹了Java中的Sentinel持久化規(guī)則啟動,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 如何在 Java 中利用 redis 實現 LBS 服務

    如何在 Java 中利用 redis 實現 LBS 服務

    基于位置的服務,是指通過電信移動運營商的無線電通訊網絡或外部定位方式,獲取移動終端用戶的位置信息,在GIS平臺的支持下,為用戶提供相應服務的一種增值業(yè)務。下面我們來一起學習一下吧
    2019-06-06
  • java中常用的阻塞隊列與非阻塞隊列詳解

    java中常用的阻塞隊列與非阻塞隊列詳解

    這篇文章主要介紹了java中常用的阻塞隊列與非阻塞隊列用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java Comparator比較器實例解析

    Java Comparator比較器實例解析

    這篇文章主要介紹了Java Comparator比較器實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01

最新評論

政和县| 德令哈市| 闵行区| 镇沅| 双峰县| 岑溪市| 湟源县| 海晏县| 兴隆县| 德清县| 襄城县| 托克托县| 台湾省| 桐梓县| 治县。| 开阳县| 丁青县| 吴桥县| 鲜城| 彰化市| 吴川市| 化州市| 舒城县| 五大连池市| 巴塘县| 水富县| 来宾市| 鄂伦春自治旗| 万源市| 太康县| 隆尧县| 鄂托克旗| 五大连池市| 日喀则市| 丁青县| 星子县| 赤壁市| 安徽省| 玉树县| 巨鹿县| 军事|