1

初めて log4j を構成しようとしていますが、myTest.log ファイルを作成していません。以下は私の log4j.properties ファイルで、このファイルの場所は WEB-INF/classes フォルダーです。

log4j.rootLogger=INFO, stdout, com.myTest

#tomcat logger
#log4j.logger.org.apache.catalina=DEBUG

log4j.logger.com.myTest=INFO

log4j.logger.org.apache.commons.configuration.PropertiesConfiguration=DEBUG

#appenders
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} %m%n

log4j.appender.com.myTest=org.apache.log4j.FileAppender 
log4j.appender.com.myTest.File=myTest.log 
log4j.appender.com.myTest.MaxFileSize=15MB 
log4j.appender.com.myTest.MaxBackupIndex=10 
log4j.appender.com.myTest.layout=org.apache.log4j.PatternLayout 
log4j.appender.com.myTest.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} %m%n

log4j.appender.org.apache.ibatis=org.apache.log4j.FileAppender 
log4j.appender.org.apache.ibatis.File=myTest.log 
log4j.appender.org.apache.ibatis.MaxFileSize=15MB 
log4j.appender.org.apache.ibatis.MaxBackupIndex=10 
log4j.appender.org.apache.ibatis.layout=org.apache.log4j.PatternLayout 
log4j.appender.org.apache.ibatis.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss}     %m%n

私のコントローラクラスは

@Controller
public class LoginController
{
static final Logger logger = Logger.getLogger(LoginController.class);

@RequestMapping("/login")
public ModelAndView login(){

    logger.debug("Test logs");
    logger.error("test error");

    return new ModelAndView("login"); 

}

 }

しかし、Apache/log フォルダーに myTest.log ファイルがありません。これはあるべき場所ですか?

私が使用しているJarファイルはlog4j-1.2.16.jarです。他に必要なものはありますか。

私はUbuntuを使用していますが、これを使用するのは初めてです。

4

3 に答える 3

2

log4j.propertiesファイルをbuild/classes/フォルダーに置きます。

ファイルパスを${catalina.home}/logs/myTest.logに配置します。

  log4j.appender.com.myTest.File=${catalina.home}/log/myTest.log 

LoginControllerクラスに以下のコードを書き込むことで、ログのパスを確認できます。

    Enumeration e = Logger.getRootLogger().getAllAppenders();
    while ( e.hasMoreElements() ){
      Appender app = (Appender)e.nextElement();
     if ( app instanceof FileAppender ){
    System.out.println("File: " + ((FileAppender)app).getFile());
  }

}

于 2012-08-02T05:18:02.667 に答える
1

あなたがあなたの質問に投稿したように、ファイルの場所はフォルダです。log4j.propertiesWEB-INF/classes

log4j.propertiesこの問題を解決するには、ファイルをsrcアプリケーションのフォルダー内に配置してみてください。

于 2012-08-01T09:02:50.107 に答える
1

同じ問題に遭遇しました。 サーバー マシンでは、log4j はログ ファイルを書き込むことができませんでしたが、ログ情報を出力するためにスタンドアウトを使用しました。これは機能しています。だから私はTomcatログの場所(logs /)にログファイルを書きます

log4j.appender.com.myTest.File=${catalina.home}/logs/myTest.log 

これがうまくいくことを願っています!!

于 2016-12-05T02:25:40.133 に答える