程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 在Java下應用log4j記載日記的辦法

在Java下應用log4j記載日記的辦法

編輯:關於JAVA

在Java下應用log4j記載日記的辦法。本站提示廣大學習愛好者:(在Java下應用log4j記載日記的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是在Java下應用log4j記載日記的辦法正文


1、媒介

log4j是一個用Java編寫的靠得住,疾速和靈巧的日記框架(API),它在Apache軟件允許下宣布。 Log4j曾經被移植到了C,C++,C#,Perl,Python和Ruby等說話中。

Log4j是高度可設置裝備擺設的,並可經由過程在運轉時的內部文件設置裝備擺設。它依據記載的優先級別,並供給機制,以指導記載信息到很多的目標地,例如:數據庫,文件,掌握台,UNIX體系日記等。

Log4j中有三個重要構成部門:

    loggers: 擔任捕捉記載信息。

    appenders : 擔任宣布日記信息,以分歧的首選目標地。

    layouts: 擔任格局化分歧作風的日記信息。

留意:本文是基於log4j 2.X及以上版本。

2、裝置

    log4j-core-xx.jar

    log4j-api-xx.jar

    log4j-web-xx.jar(web項目標須要援用)

3、設置裝備擺設

預備些日記的類添加以下援用:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
static Logger logger = LogManager.getLogger(Test.class.getName());

設置裝備擺設文件地位位於:src根目次下,即便沒有設置裝備擺設文件的話也不會報錯,默許以console的情勢停止輸入。

log4j2設置裝備擺設文件與log4(1.X版本的有很年夜分歧),只能采取.xml、.json或許 .jsn格局,詳細設置裝備擺設以下(${web:rootDir} 表現web根目次):

<?xml version="1.0" encoding="UTF-8"?>

<configuration status="error">
 <!--先界說一切的appender-->
 <appenders>
  <!--這個輸入掌握台的設置裝備擺設-->
  <Console name="Console" target="SYSTEM_OUT">
   <!--這個是輸入日記的格局-->
   <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  </Console>
  <!--文件會打印出一切信息,這個log每次運轉法式會主動清空,由append屬性決議,合適暫時測試用-->
  <File name="Error" fileName="${web:rootDir}/logs/error.log" append="false">
   <!--文件只記載level及以下級其余信息(onMatch),其他的直接謝絕(onMismatch)-->
   <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
   <PatternLayout charset="UTF-8" pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
  </File>

  <!--這個會打印出一切的信息,每次年夜小跨越size,則這size年夜小的日記會主動存入按年份-月份樹立的文件夾上面並停止緊縮,作為存檔-->
  <RollingFile name="RollingFile" fileName="${web:rootDir}/logs/history.log"
      filePattern="log/$${date:yyyy-MM}/history-%d{MM-dd-yyyy}-%i.log.gz">
   <PatternLayout charset="UTF-8" pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
   <SizeBasedTriggeringPolicy size="50MB"/>
  </RollingFile>
 </appenders>
 <!--然後界說logger,只要界說了logger並引入的appender,appender才會失效-->
 <loggers>
  <!--樹立一個默許的root的logger-->
  <root level="trace">
   <appender-ref ref="Error"/>
   <appender-ref ref="RollingFile"/>
   <appender-ref ref="Console"/>
  </root>
 </loggers>
</configuration>

4、通俗項目和web項目

關於通俗項目來說,停止以上設置裝備擺設完成後便可以正常應用,關於web項目來說,是不會生成日記文件的。須要在web.xml外面<web-app>根節點下添加以下設置裝備擺設:

<!-- log4j2.x start -->
<listener>
 <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>
<filter>
 <filter-name>log4jServletFilter</filter-name>
 <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
</filter>
<filter-mapping>
 <filter-name>log4jServletFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- log4j2.x end -->

總結

以上就是在在Java下應用log4j記載日記的辦法,願望這篇文章的內容對年夜家的進修或許任務能帶來必定的贊助,假如有疑問年夜家可以留言交換。感謝年夜家對的支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved