2016-05-11 6 views
1

ログ出力のみをファイルに送信するようにSpringブート(1.3.5)アプリケーションを構成する - コンソールをオフにします。spring-boot - コンソールログをオフにする

これは、ドキュメントによると、非常に簡単になります。 howto-logging.html - ファイルのみ出力用のセクション §72.1.1設定のlogback

しかし、私はちょうどこれを動作させることはできません - それはまだをログに記録します私が試してみてもの両方をコンソールに入れてください。 数時間にわたりグーグル・グーグルではありましたが、実際に動作する提案は見つかりませんでした。

何か問題があるかもしれませんか?

EDITマークいけないしてください、このような「複製」 - 私はそれらのすべてを読んでいる - と提案ソリューションのどれもここで働いていません。

+1

あなたのPOMがどのように構成されているか知っていればよいでしょう。 –

答えて

1

最後に---私はバグを見つけた... これは、マルチモジュールのビルドで、一つのサブモジュールで判明、また明らかにに優先しましたlogback.xmlあったが、 logback-spring.xml私が手こずっていた。ビルドから他のファイルを除外したとき、それは最終的に期待どおりに機能しました。 Phew ....

2

ただ、次の内容のあなたのクラスパスのルートにlogback.xmlを追加します。

<?xml version="1.0" encoding="UTF-8" ?> 
<configuration> 
    <appender name="FILE_APPENDER" class="ch.qos.logback.core.FileAppender"> 
     <file>myApp.log</file> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <root level="INFO"> 
     <appender-ref ref="FILE_APPENDER" /> 
    </root> 
</configuration> 

これはmyApp.logファイルにすべてのログを記述します。詳細な説明は、チェックアウトSpring Boot documentationを参照してください。それはセットアップ持つ

+0

私が書いたように、私は確かにドキュメントを読んだことがありますが、それはうまく動作しません!:) ---とにかく、私はこれにデモ/ポップを設定しなければならないことを実感し、私がそれを実証することができるならgithubにプッシュします---私は戻ってきます... – Rop

1

が、これらは私が続いてきた手順は次のとおりです。ロギングスターターは、in the docsを言われていたよう

<?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>demo2</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

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

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

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

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

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

</project> 

このポンポンファイルとデモ春ブーツWebプロジェクトを作成します。すでにWebスターターに含まれているため、必要ありません。のは(つまり、すべての必要はありません)ログインするいくつかのslf4j@Serviceを作成してみましょう:

@Service 
public class MyService { 

    private Logger logger = LoggerFactory.getLogger(MyService.class); 

    public MyService() { 
     logger.info("Created!"); 
    } 

} 

その後、として我々は、専用のファイルアペンダではなく、コンソールのための1つを構成し、logback-spring.xmlファイルを作成しますドキュメンテーションが示唆している。クラスパスのルートに1つのMavenの場所、のsrc /メイン/リソースフォルダに保存します。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/defaults.xml" /> 
    <property name="LOG_FILE" value="target/spring.log" /> 
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> 
    <root level="INFO"> 
     <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

プロジェクトを開始すると、最初のログがコンソールに示されているが、これ以上の出力はそれとして示されていませんtarget/spring.logファイルにリダイレクトされます。

2

application.propertiesのlogging.pattern.console=(値は空白のまま)に設定されています。

関連する問題