JRun EJB からログメッセージを書き出す場合、次のオプションがあります。
System.out
print
メソッドを使用します。これらのメソッドは、(JRun 起動時に使用する場合) コンソールに書き込出します。次の JRun 特有のテクニックは、JRun サーバのイベントログに書き出します。
logInfo
メソッド
これらのテクニックは、JRun のイベントログにシンプルなインターフェイスを提供します。ただし、他の J2EE アプリケーションサーバには移植できません。
EJB は、コンテナから logger インスタンスを取得して、次のコード例に示すように、ロガーの logInfo
メソッドを使用できます。
import jrun.ejb.SessionInstanceContext; ... SessionInstanceContext sessionInstanceContext = (SessionInstanceContext) sessionContext; sessionInstanceContext.getEJBContainer().getLogger(). logInfo("hi");
import jrun.ejb.EntityInstanceContext; ... EntityInstanceContext entityInstanceContext = (EntityInstanceContext) entityContext; entityInstanceContext.getEJBContainer().getLogger(). logInfo("hi");
import jrun.ejb.MessageDrivenInstanceContext; ... MessageDrivenInstanceContext mdbInstanceContext = (MessageDrivenInstanceContext) messageDrivenContext; mdbInstanceContext.getEJBContainer().getLogger().logInfo("hi");
次のコード例に示すように、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 つを使用する方法です。
このテクニックは移植可能ですが、特にすべてのログレベルが有効になっている場合は、メッセージのコンソール出力が、スレッドロガーの出力と混ざってしまう可能性があります。