2011年7月25日月曜日

GWTのログ機能

GWTにはログ機能がある。
それをいじってみた。
本家のドキュメントはこちら。

http://code.google.com/webtoolkit/doc/latest/DevGuideLogging.html


java.util.loggingクラスをエミュレートしたログクラスが用意されており、
クライアント側、サーバ側の両方にログを出力することが出来るようです。

手順は簡単で、下記の2ポイントだけ。

.gwt.xmlファイルに下記の記述の追加。

<inherits name="com.google.gwt.logging.Logging"/>

 <set-property name="gwt.logging.logLevel" value="SEVERE"/>
 <set-property name="gwt.logging.enabled" value="FALSE"/> 
 <set-property name="gwt.logging.consoleHandler" value="DISABLED"/>


ログハンドラの種類は、
SystemLogHandler
DevelopmentModeLogHandler
ConsoleLogHandler
FirebugLogHandler
PopupLogHandler
SimpleRemoteLogHandler
などがあり、必要に応じてENABLE,DISABLEを設定する。


ソースには、通常の java.util.loggingクラスを利用した方法と同様に記述
 Logger logger = Logger.getLogger("NameOfYourLogger");
 logger.log(Level.SEVERE, "ログ");


SimpleRemoteLogHandler をENABLEにするとサーバ側にログが記録されるようになる。

これをこのまま実行するとサーブレットが定義されていないというようなエラーが
出てしまうので、web.xmlにログ記録用のサーブレットを定義しておく必要がある。

< servlet >
< servlet-class>com.google.gwt.logging.server.RemoteLoggingServiceImpl </servlet-class > 
< servlet-name >logger < /servlet-name >
< /servlet >
< servlet-mapping >
< servlet-name>logger </servlet-name >
< url-pattern>/(ここは、環境によって変更する)/remote_logging </url-pattern >
< /servlet-mapping >

0 件のコメント: