Netbeans と Glassfish 3.1.2 を使用する EJB モジュールがあります。ログを実装する必要がありますが、EJB で log4j を構成する方法がわかりません。展開時にこの問題が発生しています:
SEVERE: log4j:ERROR Ignoring configuration file [file:/C:/Users/Luis Carlos/AppData/Roaming/NetBeans/7.2/config/GF3/domain1/config/log4j.properties].
SEVERE: log4j:WARN No appenders could be found for logger (beans.RutasBean).
SEVERE: log4j:WARN Please initialize the log4j system properly.
SEVERE: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
これは、glassfish サーバー コンソールに表示されます。
これは log4j.properties ファイルです。
log4j.rootLogger=DEBUG, FILE
log4j.logger.myapp=DEBUG
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=/space/gfv3/v3setup/GlassFish3/GlassFish/domains/domain1/logs/log4j.log
log4j.appender.FILE.MaxFileSize=100KB
log4j.appender.FILE.MaxBackupIndex=1
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{DATE} %-5p %c{1} : %m%n
これを試し
てみたところ
、グラスフィッシュのサーバー管理でこのようにプロパティファイルを構成する必要があると言われています
-Dlog4j.configuration=file:///${com.sun.aas.instanceRoot}/config/log4j.properties
が、機能しませんでした
シングルトン セッション Bean があり、スタートアップ メソッドでログを構成するので、これに従ってBean に次のようにします。
private Logger log;
private static final String LOG4J_PROPERTIES = "/log4j.properties";
@PostConstruct
public void startup(){
URL url = this.getClass().getResource(LOG4J_PROPERTIES);
if(url == null || url.getFile().length() == 0) {
throw new RuntimeException("Log4j config file "+ LOG4J_PROPERTIES +" not found");
}
PropertyConfigurator.configure(url);
log = Logger.getLogger(this.getClass());
log.info("Starting application");
em = Persistence.createEntityManagerFactory("BuscaBus-ejbPU");
rutaController = new RutaJpaController(ut, em);
actualizarCoordenadasRutas();
...
}
それでも同じエラーが表示されます
EJB 環境で log4j を構成するにはどうすればよいですか? ありがとう