1

log4jをejbモジュールで動作させるために、手順を追って説明していただけますか?状況は次のとおりです。hibernateを使用していくつかのフェッチタスクを実行しているejbmoduleがあり、すべてをログに記録したいと思います。log4jを使用したいのですが、jbossの手順のように、Webで説明されている他の手順の一部の手順を理解できません。

何をすべきか、段階的に教えていただけますか?

私の限りでは:

  • 私は自分の構成ファイルを持っています(そしてそれをどこに置くべきかわかりません)

  • log4j.jarを持っています(どこに配置すればよいかわかりません)

  • ログ環境を初期化する方法がわかりません(起動時に休止状態を初期化するejbセッションBeanがあり、ロガーを初期化する必要があります)

誰か助けてくれませんか?

前もって感謝します

編集:それが役立つかもしれない最初の提案に感謝しますが、私は他の人が耳にMETA-INFを持っているかもしれない方法を理解していません。私のプロジェクトは3つのプロジェクトのように見えます:

  • MyprojectLogic(ejbmodulesを含む)
  • MyprojectLogicClient(すべてのインターフェイスが含まれ、クライアントに提供されるライブラリです)
  • MyprojectLogicEAR(実際には何も含まれていません。目的がわかりませんでした)

回答:以下を参照するか、ここでjavaforthewebまたはブログを確認してください

4

1 に答える 1

2

Jbossにはすでにlog4jが付属しています。EJBを開発するときは、次のことを行う必要があります。

  1. Loggerクラスをインポートします。 import org.apache.log4j.Logger;
  2. インポートが解決しない場合は、次のjarをパスに追加します:%JBOSS_HOME%\ modules \ org \ apache \ log4j \ main \ log4j-1.2.16.jar
  3. ロガーでフィールドを作成します。private static Logger logger = Logger.getLogger(YourEJBClass.class);
  4. 任意の方法でロガーを使用します。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ヘルプを参照してください。

于 2013-01-22T16:39:50.893 に答える