2012-04-01 4 views
0

jspとサーブレットでlog4jを使用します。私はApacheのドキュメントとthis blogを読んだ。私はそのブログの第2の方法として試みた。ここLog4jログファイルが見つかりません

log4j.logger.myapplogger=DEBUG, C, fileappender 
  
log4j.additivity.myapplogger=true 
log4j.appender.C=org.apache.log4j.ConsoleAppender 
log4j.appender.C.layout=org.apache.log4j.PatternLayout 
#basic pattern 
log4j.appender.C.layout.ConversionPattern=[%c] [%d{dd MMM yyyy - hh:mm:ss}] %5p - %m %n 
#advanced pattern (slow) 
#log4j.appender.C.layout.ConversionPattern=[%c] [%d{dd MMM yyyy - hh:mm:ss}] %5p - %m - in %M() at line %L of class %C %n 
  
log4j.appender.fileappender=org.apache.log4j.RollingFileAppender 
log4j.appender.fileappender.File=${appRootPath}WEB-INF/logs/app_log.log 
log4j.appender.fileappender.MaxFileSize=500KB 
  
## Keep one backup file 
log4j.appender.fileappender.MaxBackupIndex=3 
log4j.appender.fileappender.layout=org.apache.log4j.PatternLayout 
log4j.appender.fileappender.layout.ConversionPattern=%p %t %c - %m%n 
#log4j.appender.C.layout.ConversionPattern=[%c] [%d{dd MMM yyyy - hh:mm:ss}] %5p - %m %n 

はここに私のサーブレットリスナー

public class ApplicationServletContextListener implements ServletContextListener{ 

    public void contextInitialized(ServletContextEvent e) { 

     ServletContext ctx=e.getServletContext(); 
     String prefix=ctx.getRealPath("/"); 
String file="WEB-INF"+System.getProperty("file.separator")+"classes"+System.getProperty("file.separator")+"log4j.properties"; 

if(file !=null){ 
PropertyConfigurator.configure(prefix+file); 
    System.out.println("Log4J Logging started for application: " + prefix+file); 
}else{ 
System.out.println("Log4J Is not configured for application Application: " + prefix+file); 
} 

とコンソールが表示され、私のプロパティファイルである「log4jロギングは、アプリケーションのために始めました...」。

ここで私がテストしようとしているサーブレットです。

private Logger log = Logger.getLogger("myapplogger"); 
log.error("this is a testign error"); 

コンソールはlog.Butはまだ私がチェックする必要があり、どのようにこの問題を修正するにはどこに私が知っているしなさい/ WEB-INF/logsに作成された何のいずれかのログファイルが存在しない示しています。あなたはappend.Itのファイルプロパティに変数${appRootPath}を持って

ので

答えて

1

そのは、その空の、ように設定されていません。

空であるため、webapps/ではなく、ホームディレクトリにWEB-INF/logsディレクトリが作成されます。

)(contextInitializedでプロパティを定義

System.setProperty("appRootPath", context.getRealPath("/")); 

は、サーブレットコンテナを再起動します。

+0

ありがとうHardik.It働いた。 –

+0

あなたはウェルカムです。 –

関連する問題