- - PR -
WEBSphere5 & Log4J
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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> | ||||
|
投稿日時: 2003-07-29 21:43
書き忘れました。
Tomcatは4.1.24 Eclipseは2.1.0 です。 よろしくおねがいいたします。 | ||||
|
投稿日時: 2003-07-30 09:38
WebSphereは3.5と4.0しか使用したことはありませんが。 私もWebSphereでコンソールにログを出せないか色々調べたことがあります。 でも結局、表示できずにWebSphereのログファイルで確認していました。 5.0はどうなんでしょうね・・・。 | ||||
|
投稿日時: 2003-07-30 11:39
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システムログへの出力はされない。 | ||||
|
投稿日時: 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-07-31 19:17
Websphere5上でCommons Logging経由でLog4Jを使っています。別に問題ないですよ。 自分用のcommons-logging.propertiesを作ればよいのです。WebSphere提供のjarに手を付ける必要はありません。 | ||||
|
投稿日時: 2003-07-31 20:39
サ様、ご返答ありがとうございます。 自分用のcommons-logging.propertiesの作成はしてみたのですが、やはり出力がされないようです。 ちなみに、サ様はプロパティファイルをどこに配置されてますか? 私はWEB-INF/classes下に配置しております。 | ||||
|
投稿日時: 2003-07-31 20:44
私もwebsphere5でのcommons-logging及びlog4jの使用についてIBMに質問したことがありますが、commons-loggingは内部的に使用しているので使用できないとのことでしたが、ログファクトリ自体はlog4jでないみたいなのでlog4jを直接使用して現在うまく動いています。クラスパスが通っているところにlog4-j.xmlを置くときちんと読んでくれているみたいです。
|