2017-09-22 7 views
0

私はSpring STSを使って起動アプリケーションを設計しました。 ここでは、ここでいくつかのログを追加したいと思います。私は、自分のアプリケーションを起動するクラスを書いたSpring:Log4jはロギングファイルに書き込まない

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>CarsDB</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>CarsDB</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.7.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derby</artifactId> 
      <version>10.13.1.1</version><!--$NO-MVN-MAN-VER$--> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.integration</groupId> 
      <artifactId>spring-integration-http</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-solr</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      </dependency> 

     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-jcl</artifactId> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

:私は依存関係を持つのpom.xmlを修正

# Define the root logger with appender file 
log4j.rootLogger = DEBUG, FILE 

# Define the file appender 
log4j.appender.FILE=org.apache.log4j.RollingFileAppender 

# Set the name of the file 
log4j.appender.FILE.File=log.out 

# Set the immediate flush to true (default) 
log4j.appender.FILE.ImmediateFlush=true 

# Set the threshold to debug mode 
log4j.appender.FILE.Threshold=debug 

# Set the append to false, should not overwrite 
log4j.appender.FILE.Append=true 

# Set the maximum file size before rollover 
log4j.appender.FILE.MaxFileSize=5KB 

# Set the the backup index 
log4j.appender.FILE.MaxBackupIndex=2 

# Define the layout for file appender 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.conversionPattern=%m%n 

: はその後、this tutorial次私はlogforj4.propertiesファイルを書きましたロガーをテストするコードをいくつか追加してください:

package it.CarsDB.boot; 
import org.apache.log4j.Logger; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 


@SpringBootApplication 
public class CarsDBApplication { 

    /* Get actual class name to be printed on */ 
    static Logger log = Logger.getLogger(CarsDBApplication.class.getName()); 

    public static void main(String[] args) throws Exception{ 
     log.debug("Hello this is a debug message"); 
     log.info("Hello this is an info message"); 
     SpringApplication.run(CarsDBApplication.class, args); 
    } 
} 

写真のように私は(実際に私も、のsrc /メイン/リソースに入れて、それは私の問題のための助けにはならなかった)、のsrc /メイン/ javaのlog4j.propertiesを置きます。 これで、ログはファイル{$ log} /log.outにリダイレクトされると思われますが、そのようなファイルは作成されず、コンソール上のログしか表示されません。 私は間違っていますか?

ありがとうございました。

enter image description here

+0

私はそのファイルがどこかにあると思っています。あなたが期待する場所ではありません。おそらく作業ディレクトリで、あなたはアプリを実行しています。ファイルシステム全体で探してみましたか? – amorfis

+0

ファイルシステム全体を閲覧しましたが、log.outファイルを探していますが、そのファイルは作成されていません。 – Bia

+0

Springはlogbackを使用するので、実際には 'logback.xml'ファイルが必要です。設定例をここで確認してください:http://blog.patouchas.net/technology/logging-with-logback-and-external-configuration/ – amorfis

答えて

0

あなたは春ブーツ用ドキュメントを確認しましたか?

https://logging.apache.org/log4j/2.x/manual/configuration.html

ロギング構成はのsrc /メイン/リソースであることが必要と log4j2-spring.xmlまたはlog4j2.xml名前を付ける必要があります。

Log4j2はまだプロパティフォーマットをサポートしていますが、これもSpring Bootでも動作するのかどうかは不明です。

関連する問題