EJB のログの作成

JRun EJB からログメッセージを書き出す場合、次のオプションがあります。

JRun 特有のメソッド

次の JRun 特有のテクニックは、JRun サーバのイベントログに書き出します。

これらのテクニックは、JRun のイベントログにシンプルなインターフェイスを提供します。ただし、他の J2EE アプリケーションサーバには移植できません。

logInfo メソッドの使用

EJB は、コンテナから logger インスタンスを取得して、次のコード例に示すように、ロガーの logInfo メソッドを使用できます。

セッション bean

import jrun.ejb.SessionInstanceContext;
...
SessionInstanceContext sessionInstanceContext = 
    (SessionInstanceContext) sessionContext;
sessionInstanceContext.getEJBContainer().getLogger().
logInfo("hi");

エンティティ bean

import jrun.ejb.EntityInstanceContext;
...
EntityInstanceContext entityInstanceContext = 
    (EntityInstanceContext) entityContext;

  entityInstanceContext.getEJBContainer().getLogger().
logInfo("hi");

メッセージ駆動型 bean

import jrun.ejb.MessageDrivenInstanceContext;
...
MessageDrivenInstanceContext mdbInstanceContext = 
    (MessageDrivenInstanceContext) messageDrivenContext;
mdbInstanceContext.getEJBContainer().getLogger().logInfo("hi");

logger サービスの使用

次のコード例に示すように、JNDI を使用して LoggerService を検索できます。

...
  try {
    Properties p = new Properties();
    p.put(Context.SECURITY_PRINCIPAL, "userid");
    p.put(Context.SECURITY_CREDENTIALS, "password");
    p.put(Context.INITIAL_CONTEXT_FACTORY, 
"jrun.naming.JRunContextFactory");
    p.put(Context.PROVIDER_URL, "localhost:2918");
    InitialContext ctx = new InitialContext(p);
    LoggerService ls = (LoggerService) ctx.lookup("jrun:service/
LoggerService");
    ls.logInfo("Message logged using LoggerService");
...

移植可能なメソッドの使用

EJB のメッセージを書き出す際のシンプルで移植可能なオプションは、
System.out.println のような System.out print メソッドの 1 つを使用する方法です。

このテクニックは移植可能ですが、特にすべてのログレベルが有効になっている場合は、メッセージのコンソール出力が、スレッドロガーの出力と混ざってしまう可能性があります。