- PR -

クラスパスの通っている場所とは?(LOG4J)

1
投稿者投稿内容
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2007-02-05 23:26
いつもお世話になっております。

現在、一通りの動作が確認できているWebアプリケーションに対してlog4jを使ってログを出力させようとしています。

log4j.xmlをプロジェクトの直下に配置してビルドを実行すると、コンソールに下記メッセージが表示されました。

log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.ConvertUtils).
log4j:WARN Please initialize the log4j system properly.

解決策をネットで調べていると、
「log4j.xmlをクラスパスの通っている場所に置くとエラーが表示されなくなる」と書いてあったのですが、
クラスパスの通っている場所とはどうやったらわかるのでしょうか?

http://www.techscore.com/forum/modules/newbb/viewtopic.php?viewmode=thread&order=ASC&topic_id=127&forum=1

jarファイルに対するクラスパスの設定はこちらのサイトを見てわかるのですが、
通っている場所というのがよくわかりません。
http://www.javaroad.jp/opensource/js_eclipse8.htm

どなたかご存知の方、教えていただけないでしょうか。

開発環境は以下のとおりです。よろしくお願いいたします。
Eclipse3.2、Tomcat5.0.28、Struts1.2.9、J2SDK1.4.2、log4j 1.2.8
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-02-06 00:27
クラスパスとして設定する場所を意味しますが、
Tomcatの場合はコンテキスト単位のWEB-INF/classesと
WEB-INF/libのjarの中のルートになります。
他にCATALINA_HOME/shared/classes等も・・・

100%動くわけではないですが、以下のコードで確認ができます。
コード:
URLClassLoader loader = (URLClassLoader) Thread.currentThread()
				.getContextClassLoader();
URL[] urls = loader.getURLs();
for (int i = 0; i < urls.length; i++) {
	System.out.println(urls[i]);
}


ただし、クラスローダがURLClassLoaderの派生クラスのインスタンスである必要があります。
未記入
会議室デビュー日: 2007/02/05
投稿数: 4
投稿日時: 2007-02-06 00:42
http://www.okisoft.co.jp/esc/log4j/index.html
http://pinoki.la.coocan.jp/wiki/?Eclipse%2F3.1%2FJSP%A1%F5%A5%B5%A1%BC%A5%D6%A5%EC%A5%C3%A5%C8%2FFAQ#z1850659

上の方が詳しいけど、%TOMCAT%/common/classesと
WEB-INF/classesの違いが分からないなら
Tomcatの勉強もしてください
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2007-02-06 23:25
返信ありがとうございます。

お二人のアドバイスのおかげで、無事ログを出力させることができました。
(srcフォルダの直下にlog4j.xmlを置きました)
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)