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.");
  }
}

クラスパスを設定しました: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

クラスパスを正しく設定したことはわかっています-cmdlineを実行した場合:

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

JVMはlog4jクラスへのパスを必要とするため、log4jホームをクラスパスに追加する必要があります

Windowsの場合は、

set classpath=%classpath%;%LOG4J_HOME%

linux / ubuntuの場合(開発およびサーバー用のWindowsよりもはるかに優れています)

export classpath=$classpath:$LOG4J_HOME

次に、クラスパスに他のパスを追加した後、アプリを実行します。

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

現在のクラスパスに追加されるように、log4JHOMEを再度追加する必要はありません%classpath%;

LOG4J_HOMEはJavaに認識されていません。これは、自動構成/デフォルト構成の場合に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ベース)コマンドで見つけることができ、次に実行します。

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