Log4j 安裝

2022-01-10 13:50 更新

Log4j教程 - Log4j安裝


Log4j API包是根據(jù)Apache軟件許可證分發(fā)的。

最新的log4j版本,包括全源代碼,類(lèi)文件和文檔可以在http://logging.apache.org/log4j/找到。

我們可以從上面的鏈接下載apache-log4j-x.x.x.tar.gz或zip文件。

 注意:log4j以下版本存在0day漏洞,盡量避免使用這些版本!!!

    Apache log4j2 2.0 - 2.14.1

支持庫(kù)

我們可以使用log4j將信息記錄到各種目的地,例如發(fā)送電子郵件,數(shù)據(jù)庫(kù)或文件。

有一個(gè)我們需要放到classpath的庫(kù)的列表,以便log4j可以拿起它并使用它。

例如,當(dāng)從log4j發(fā)出電子郵件時(shí),我們需要電子郵件庫(kù)jar文件。

庫(kù)是可選的,并且取決于我們將要與log4j框架一起使用的功能。

  • JavaMail API(mail.jar): 從https://glassfish.dev.java.net/javaee5/mail/用于基于電子郵件的日志記錄。

  • JavaBeans Activation Framework(activation.jar): 來(lái)自http://java.sun.com/products/javabeans/jaf/index.jsp。

  • Java Message Service: 用于JMS和JNDI。

  • XML Parser(Xerces.jar): 來(lái)自http://xerces.apache.org/xerces-j/install.html。

Maven和Log4j

首先,使用以下maven命令創(chuàng)建一個(gè)空的Maven項(xiàng)目。

C:\mvn_test>mvn archetype:generate -DgroupId=com.w3cschool.ide -DartifactId=MyTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

然后,轉(zhuǎn)到項(xiàng)目文件夾并找到pom.xml,添加以下依賴(lài)關(guān)系。

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

之后,將以下代碼添加到在resources文件夾下創(chuàng)建的log4j.properties。

  
MyTest
 |
 +-src
    |
    +-main
       |
       +-java
       |  |
       |  +-com
       |    |
       |    +-w3cschool
       |       |
       |       +-ide
       |
       +-resources
          |
          +- log4j.properties         
            
  

如上面的文件夾結(jié)構(gòu)所示,資源位于java文件夾的保存級(jí)別。

對(duì)于Java Web應(yīng)用程序,將log4j.properties文件存儲(chǔ)在WEB-INF/classes目錄下 將以下配置保存到log4j.properties文件中。
# Root logger option
log4j.rootLogger=DEBUG, stdout, file
 
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
 
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log4j.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

最后一個(gè)%m%n 配置log4j以添加換行符。

%L設(shè)置從記錄請(qǐng)求的行號(hào)。

%c{1}引用通過(guò) getLogger()設(shè)置的日志記錄名稱(chēng)。

%-5p設(shè)置日志記錄優(yōu)先級(jí),如DEBUG或ERROR。

最后添加以下代碼App.java并運(yùn)行應(yīng)用程序。

package com.w3cschool.ide;
 
import org.apache.log4j.Logger;
 
public class App{
 
  final static Logger logger = Logger.getLogger(App.class);
 
  public static void main(String[] args) {
 
    App obj = new App();
    obj.runMe("w3cschool");
 
  }
 
  private void runMe(String parameter){
 
    if(logger.isDebugEnabled()){
      logger.debug("This is debug : " + parameter);
    }
 
    if(logger.isInfoEnabled()){
      logger.info("This is info : " + parameter);
    }
 
    logger.warn("This is warn : " + parameter);
    logger.error("This is error : " + parameter);
    logger.fatal("This is fatal : " + parameter);
 
  }
 
}

以下代碼顯示如何記錄異常。

import org.apache.log4j.Logger;

public class App {

  final static Logger logger = Logger.getLogger(App.class);

  public static void main(String[] args) {

    App obj = new App();

    try {
      obj.divide();
    } catch (ArithmeticException ex) {
      logger.error("Sorry, something wrong!", ex);
    }
  }

  private void divide() {
    int i = 10 / 0;

  }

}



以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)