10

我知道这可能是一个新手问题,但我在设置 Log4J 时遇到了问题:

我想运行一个 log4j 演示,这是我的代码:

import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;

public class HelloLOG4j {

  private static final Logger logger = Logger.getLogger(Hello.class);

  public static  void main(String argv[]) {
 BasicConfigurator.configure();
 logger.debug("Hello world.");
 logger.info("What a beatiful day.");
  }
}

我在 System 和 User var 中设置了我的 Classpath: C:\Users\Adel\Downloads\apache-log4j-1.2.17\log4j-1.2.17.jar

在此处输入图像描述

但是当我运行我的程序时,我仍然得到

errors found:
File: C:\Users\Adel\Desktop\various_topics\JavaProjects\HelloLOG4j.java  [line: 2]
Error: package org.apache.log4j does not exist

我知道我设置了正确的类路径 - 如果我运行 cmd 行:

C:\Program Files\Java\jdk1.6.0_20>print %LOG4J_HOME%
C:\Users\Adel\Downloads\apache-log4j-1.2.17\log4j-1.2.17.jar is currently bein
g printed
4

3 回答 3

2

您需要将 log4j home 添加到类路径,因为 JVM 需要 log4j 类的路径

如果在 Windows 上,您可以使用

set classpath=%classpath%;%LOG4J_HOME%

在 linux/ubuntu 上(比开发和服务器的 windows 好得多)

export classpath=$classpath:$LOG4J_HOME

然后在向类路径添加其他路径后运行您的应用程序,例如

set classpath=%classpath%;c:\users\adel\....

您不需要再次添加 log4JHOME -%classpath%;将添加到当前类路径。

Java 不知道 LOG4J_HOME。在自动配置/默认配置的情况下,它仅由 log4j 使用。

在旁注中尝试使用新的 log4j2 !

于 2013-04-10T12:54:36.827 回答
0

你能展示你是如何编译代码的吗?

此外,尝试将 log4j.jar 添加到“lib”目录并使用引用此 jar 的类路径进行编译

于 2013-02-16T19:17:52.467 回答
0

只是想提醒一下,不要大写Log4j关键字,不像Logger

import org.apache.Log4j.Logger; //typo
import org.apache.log4j.Logger; //correct

/usr/share/java/log4j-1.2-api-2.8.2.jar路径可以通过 issue dpkg -L liblog4j2-java(debian-based) 命令定位,然后执行:

$ sudo javac -cp .:xxx.jar:/usr/share/java/log4j-1.2-api-2.8.2.jar xxx.java
于 2018-08-09T09:40:16.240 回答