如何解决此Log4J导入错误(与Classpath相关)?

Cof*_*fee 5 java configuration log4j log4j2

当我运行以下简单的log4J示例时,我收到一个错误:

import org.apache.logging.log4j.core.*;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class log4jExample{
  /* Get actual class name to be printed on */
  static Logger log = Logger.getLogger(
                      log4jExample.class.getName());

  public static void main(String[] args)
                throws IOException,SQLException{

     log.debug("Hello this is an debug message");
     log.info("Hello this is an info message");
  }
}
Run Code Online (Sandbox Code Playgroud)

并且错误如下:

Error: package org.apache.logging.log4j.core does not exist
Error: cannot find symbol
  symbol:   class Logger
  location: class log4jExample
File: C:\Users\adel\Desktop\various_topics\JavaProjects\log4jExample.java  [line: 10]
Error: cannot find symbol
  symbol:   variable Logger
  location: class log4jExample
Run Code Online (Sandbox Code Playgroud)

所以我相信我正确地将log4J添加到类路径中,如下所示:

在此输入图像描述

我从apache目录中解压缩jar文件log4j-core-2.0-beta4.jar如下:

在此输入图像描述

我不确定发生了什么 - import语句如何工作?即在线示例告诉我说:

import org.apache.log4j.Logger;
Run Code Online (Sandbox Code Playgroud)

但是如果我的目录结构如下所示:

\ Apache的log4j的-2.0-BETA4槽\组织\阿帕奇\记录\ log4j的\芯\ Logger.java

我不得不说:

import org.apache.logging.log4j.core.Logger;
Run Code Online (Sandbox Code Playgroud)

代替?

Voi*_*icu 11

我认为您需要在类路径中同时使用APICore jar.请按照以下说明进行构建和安装,以及这些配置.在配置页面上,您要询问的是导入行import org.apache.logging.log4j.Logger;,因此Logger该类将从API jar中提取.

Log4j 2需要两个罐子(而不是需要一个的Log4j 1.x)因为:

API分离

Log4j的API与实现分开,使应用程序开发人员可以清楚地了解可以使用哪些类和方法,同时确保向前兼容性.这使Log4j团队能够以兼容的方式安全地改进实施.