- PR -

WEBSphere5 & Log4J

投稿者投稿内容
shouta
会議室デビュー日: 2003/07/29
投稿数: 8
投稿日時: 2003-07-29 21:42
はじめまして。shoutaと申します。

今回、WAS5.0.0とCommons-logging - Log4Jを用いたシステムの開発を行っております。

開発スタイルは、各開発者端末上ではTomcat&Eclipseを用いてアプリの開発を行い、
CVSでソースを管理、Antを用いてWARを作成し、WAS管理ツールでデプロイ、
という手順で行っています。

ここで問題が発生したのですが!

Tomcat上では出力されていたログがWAS上で動作させると出力されないのです。
正確には、出力先に指定したファイルは生成されるのですが、ログメッセージがでません。

どなたか、同様の現象にあたったことのある方はいらっしゃいませんでしょうか。

よろしくお願いいたします。


◆環境
Windows2000Server SP3
WAS 5.0.0
Log4J 1.2.8
commons-logging struts1.1付属のもの
JDK1.3.1_07

◆log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.SimpleLayout"/>
</appender>

<appender name="File" class="org.apache.log4j.FileAppender">
<param name="File" value="c:/work/20030729LogFile.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.SimpleLayout"/>
</appender>

<root>
<priority value="degug" />
<appender-ref ref="Console" />
<appender-ref ref="File" />
</root>

</log4j:configuration>
shouta
会議室デビュー日: 2003/07/29
投稿数: 8
投稿日時: 2003-07-29 21:43
書き忘れました。

Tomcatは4.1.24
Eclipseは2.1.0

です。
よろしくおねがいいたします。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-07-30 09:38
引用:

shoutaさんの書き込み (2003-07-29 21:42) より:
Tomcat上では出力されていたログがWAS上で動作させると出力されないのです。
正確には、出力先に指定したファイルは生成されるのですが、ログメッセージがでません。


 WebSphereは3.5と4.0しか使用したことはありませんが。
私もWebSphereでコンソールにログを出せないか色々調べたことがあります。
でも結局、表示できずにWebSphereのログファイルで確認していました。
5.0はどうなんでしょうね・・・。
shouta
会議室デビュー日: 2003/07/29
投稿数: 8
投稿日時: 2003-07-30 11:39
引用:

takuさんの書き込み (2003-07-30 09:38) より:
 WebSphereは3.5と4.0しか使用したことはありませんが。
私もWebSphereでコンソールにログを出せないか色々調べたことがあります。
でも結局、表示できずにWebSphereのログファイルで確認していました。
5.0はどうなんでしょうね・・・。



taku様、ご返信ありがとうございます。

IBMに問い合わせてみたところ、
「実はWebSphereでは内部的にLog4Jを使用しているので、そのせいかもしれない」
という情報を得ました。
微妙なところですが・・・。

調査をすすめたところ、commons-loggingをラッパーとしてはさんだ場合とはさまない場合とでは挙動が異なるのですが、これがまた切り分けをしかねる状態です。

「以前WAS + Log4Jでうまくうごいたよー」という方も、もしいらっしゃいましたらご意見を伺いたいです。

◆commons-loggingをはさんだ場合
・FileAppenderを用いたファイルへのログ出力はされない(ファイルだけは生成される)

・ConsoleAppenderで、Websphere管理下のコンソール出力はされる。
 ただし、FATAL , WARN , INFOのみ。
 なぜか「警告」「注意」「情報」という3つの出力先に仕分けまでされます。。。

・NTEventLogAppenderを用いたNTシステムログへの出力はされない。


◆直接Log4Jを用いた場合
・FileAppenderを用いたファイルへのログ出力はされる。

・ConsoleAppenderで、Websphere管理下のコンソール出力はされない。

・NTEventLogAppenderを用いたNTシステムログへの出力はされない。
shouta
会議室デビュー日: 2003/07/29
投稿数: 8
投稿日時: 2003-07-30 15:47
調べていたところ、どうやらWebsphere5内部でcommons-loggingを使用していることも判明しました。。

ws-commons-logging.jarというjarファイルが提供されているのですが、なんとその中にcommons-logging.propertiesファイルが!!

中を開くと

org.apache.commons.logging.LogFactory=com.ibm.ws.commons.logging.TrLogFactory

と記述されていて、ようするにcommons-loggingの中身は全てWebsphereの管理したログ出力へ行ってしまうということのようです。

Websphereが提供しているjarに手をつけるのはかなりリスキーであることを考えると、現実問題として「Websphere上ではcommons-loggingは利用できない」という判断を下さざるを得ないように思います。
非常に残念です。

参考URL
http://www.mail-archive.com/log4j-user@jakarta.apache.org/msg08313.html
佐々木
大ベテラン
会議室デビュー日: 2003/03/30
投稿数: 121
投稿日時: 2003-07-31 19:17
引用:

Websphereが提供しているjarに手をつけるのはかなりリスキーであることを考えると、現実問題として「Websphere上ではcommons-loggingは利用できない」という判断を下さざるを得ないように思います。
非常に残念です。



Websphere5上でCommons Logging経由でLog4Jを使っています。別に問題ないですよ。
自分用のcommons-logging.propertiesを作ればよいのです。WebSphere提供のjarに手を付ける必要はありません。
shouta
会議室デビュー日: 2003/07/29
投稿数: 8
投稿日時: 2003-07-31 20:39
引用:

サさんの書き込み (2003-07-31 19:17) より:
Websphere5上でCommons Logging経由でLog4Jを使っています。別に問題ないですよ。
自分用のcommons-logging.propertiesを作ればよいのです。WebSphere提供のjarに手を付ける必要はありません。



サ様、ご返答ありがとうございます。

自分用のcommons-logging.propertiesの作成はしてみたのですが、やはり出力がされないようです。

ちなみに、サ様はプロパティファイルをどこに配置されてますか?
私はWEB-INF/classes下に配置しております。
のぶ
会議室デビュー日: 2003/01/09
投稿数: 11
お住まい・勤務地: とちぎ
投稿日時: 2003-07-31 20:44
私もwebsphere5でのcommons-logging及びlog4jの使用についてIBMに質問したことがありますが、commons-loggingは内部的に使用しているので使用できないとのことでしたが、ログファクトリ自体はlog4jでないみたいなのでlog4jを直接使用して現在うまく動いています。クラスパスが通っているところにlog4-j.xmlを置くときちんと読んでくれているみたいです。

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