第三百零三节 Log4j教程 - Log4j安装

Log4j教程 - Log4j安装

Log4j API包是根据Apache软件许可证分发的。

最新的log4j版本,包括全源代码,类文件和文档可以在http://logging.apache.org/log4j/找到。

我们可以从上面的链接下载apache-log4j-x.x.x.tar.gz或zip文件。

注意:log4j以下版本存在0day漏洞,尽量避免使用这些版本!!!
Apache log4j2 2.0 - 2.14.1

支持库

我们可以使用log4j将信息记录到各种目的地,例如发送电子邮件,数据库或文件。

有一个我们需要放到classpath的库的列表,以便log4j可以拿起它并使用它。

例如,当从log4j发出电子邮件时,我们需要电子邮件库jar文件。

库是可选的,并且取决于我们将要与log4j框架一起使用的功能。

Maven和Log4j

首先,使用以下maven命令创建一个空的Maven项目。

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

然后,转到项目文件夹并找到pom.xml,添加以下依赖关系。

复制代码
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

之后,将以下代码添加到在resources文件夹下创建的log4j.properties。

复制代码
  
MyTest
 |
 +-src
    |
    +-main
       |
       +-java
       |  |
       |  +-com
       |    |
       |    +-w3cschool
       |       |
       |       +-ide
       |
       +-resources
          |
          +- log4j.properties         
            
  

如上面的文件夹结构所示,资源位于java文件夹的保存级别。

对于Java Web应用程序,将log4j.properties文件存储在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

最后一个%m%n 配置log4j以添加换行符。

%L设置从记录请求的行号。

%c{1}引用通过 getLogger()设置的日志记录名称。

%-5p设置日志记录优先级,如DEBUG或ERROR。

最后添加以下代码App.java并运行应用程序。

复制代码
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;

  }

}
相关推荐
Ronin3051 分钟前
日志打印和实用 Helper 工具
数据库·sqlite·rabbitmq·文件操作·uuid生成
上海合宙LuatOS2 分钟前
LuatOS ——Modbus RTU 通信模式
java·linux·服务器·开发语言·网络·嵌入式硬件·物联网
eWidget2 分钟前
面向信创环境的Oracle兼容型数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库
xyq20249 分钟前
《jEasyUI 启用行内编辑》
开发语言
野生技术架构师9 分钟前
Java 21虚拟线程 vs Kotlin协程:高并发编程模型的终极对决与选型思考
java·开发语言·kotlin
阿正的梦工坊11 分钟前
使用即梦(seedream)来图生图:读取与写入飞书多维表格
数据库·飞书
言之。13 分钟前
Kotlin快速入门
android·开发语言·kotlin
Vivienne_ChenW17 分钟前
DDD领域模型在项目中的实战
java·开发语言·后端·设计模式
Coder_Boy_18 分钟前
基于SpringAI的在线考试系统-整体架构优化设计方案(续)
java·数据库·人工智能·spring boot·架构·领域驱动
勤奋的小王同学~18 分钟前
SpringMVC
java·spring·mvc