Jbossにはすでにlog4jが付属しています。EJBを開発するときは、次のことを行う必要があります。
- Loggerクラスをインポートします。
import org.apache.log4j.Logger;
- インポートが解決しない場合は、次のjarをパスに追加します:%JBOSS_HOME%\ modules \ org \ apache \ log4j \ main \ log4j-1.2.16.jar
- ロガーでフィールドを作成します。
private static Logger logger = Logger.getLogger(YourEJBClass.class);
- 任意の方法でロガーを使用します。
logger.info("my log");
JBossにはすでに設定ファイルが付属しています%JBOSS_FOLDER%/standalone/configuration/standalone.xml
。デフォルトでは、ロガーはserver.logとconsoleに出力されますが、アプリのログを別のファイルに出力するためのアペンダーを追加できます。
次に例を示します。そのファイルを編集し、次のスニペットを追加します(ファイルの定義に従って)。
- これは、logsフォルダー内のファイルmyappfile.logにアペンダーを追加することです(これは、name = "FILE"で既に定義されている直後に追加します)。
<periodic-rotating-file-handler name="FILETWO">
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="myappfile.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
- このスニペットを追加すると、log4jに「com.mypackage」カテゴリのすべてのログを以前に作成したアペンダーに送信するように指示されます(ファイル内の他の定義済みロガーの直後、ルートロガーの前にこれをコピーします)。
<logger category="com.mypackage">
<level name="DEBUG"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILETWO"/>
</handlers>
</logger>
サーバーを再起動すると、フォルダーに新しいmyappfile.logが表示されます。アプリが何かをログに記録していることを確認します。たとえば、サーブレットにlogger.info( "myサーブレット情報ログ")を追加して、ブラウザから呼び出します。このログはコンソールにも表示されます
さらにカスタマイズが必要な場合は、log4jヘルプを参照してください。