2008年11月アーカイブ

Log4JのDTD

| | コメント(0) | トラックバック(0)

概要

Log4J の設定ファイルを log4j.properties ではなく log4j.xml で記述する際、Eclipse で編集中、文法をチェックしてもらえたら便利だ。

Log4J の DTD は jar ファイル(例: log4j-1.2.14.jar) の中のorg.apache.log4j.xml の中に log4j.dtd の名前で存在している。
が、わざわざ Eclipse にこの DTD を登録したり、Log4J に新しい構文が追加されたときに設定しなおすのでは不便。

本家の web サイト上で log4j.dtd を公開してくれるのが最も良い解決法だと思うが、探しても見つからない。

解決法

log4j.xml で、次のように DOCTYPE を記述する。

現象

OSなしのマシンに Windows XP Pro をインストールしたところ、Windows Update ができない。

C:\Windows\WindowsUpdate.log を見ると、ファイルの最後へ次のように記録されている。
COMAPI	WARNING: Operation failed due to earlier error, hr=80004002

解決方法

こちら を参考に解決。

DOS プロンプトを起動し、次のコマンドをカット&ペーストで貼り付け、実行する。
%Windir%\system32\net.exe stop bits
%Windir%\system32\net.exe stop wuauserv  
%Windir%\system32\regsvr32.exe %Windir%\system32\atl.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\jscript.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\msxml3.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\softpub.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\wuapi.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\wuaueng.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\wuaueng1.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\wucltui.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\wups.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\wups2.dll
%Windir%\system32\regsvr32.exe %Windir%\system32\wuweb.dll
%Windir%\system32\net.exe start bits
%Windir%\system32\net.exe start wuauserv

概要

web アプリケーションの負荷試験などを行う際、tomcat のセッションの入出力状態をモニターしたくなることがある。

また、Hibernate + Seasar + Wicket でアプリケーション構築時、セッションのデシリアライズがうまくいかないことがあり、tomcat の PersistentManager や StandardSession の動作を追っていくことで問題を発見、修正できることがある。

Linux で tomcat 動作時のデバッグ手順

logging.properties を次のように修正する。
handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.FileHandler.level = FINEST
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


#org.apache.catalina.level = INFO
org.apache.catalina.level = FINEST

org.apache.catalina.connector.level = INFO
org.apache.catalina.loader.level = INFO
org.apache.catalina.startup.level = INFO
org.apache.catalina.mbeans.level = INFO

これで、catalina.out に詳細なログが出力される。

Eclipse + WTP + tomcat 環境でのデバッグ方法

Eclipse 上で次の操作を行う。
  • [実行] メニュー ⇒ [実行ダイアログを開く]
  • ダイアログ左側の一番上にある「Apache Tomcat」の中の、「localhost の tomcat v6.0 サーバー」をクリック。
  • ダイアログ右側から「引数」タブを開く。
  • VM引数に次のような記述を追加する。パスは自分の環境に合わせて適宜修正する。
    -Djava.util.logging.config.file="C:\usr\apache-tomcat-6.0.16\conf\my.logging.properties"

次に、c:\usr\apache-tomcat-6.0.16\conf\my.logging.properties ファイルを作成する。
handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.FileHandler.level = FINEST
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


#org.apache.catalina.level = INFO
org.apache.catalina.level = FINEST

org.apache.catalina.connector.level = INFO
org.apache.catalina.loader.level = INFO
org.apache.catalina.startup.level = INFO
org.apache.catalina.mbeans.level = INFO

これで tomcat 起動時、catalina.out に詳細なログが出力されるようになる。

ちなみに、catalina.out の場所は workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\logs となる(Eclipse 3.3.2 Preiades All in One の場合)。

2009年4月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30