2017-05-12 44 views
6

Logback kullanarak 2 Spring Boot (1.4.1-RELEASE) konsol uygulamasına sahibim. Her iki yapılandırma dosyası da aynı veya daha az özdeştir, benim /src/main/resources klasöründe bulunur ve logback-spring.xml olarak adlandırılır.Spring Boot yok sayılıyor logback-spring.xml

Her iki projede de, pom.xml dosyasında maven bağımlılığı, başlangıç-önyükleme-başlangıç-oturum açma ve oturum açma sürüm 1.1.7. Her iki saçak tanımlanan

Bahar Önyükleme yapılandırma: uygulamalarını çalıştırırken

<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> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.1.RELEASE</version> 
    <relativePath /> 
</parent> 

<groupId>d.m.v.app-a</groupId> 
<artifactId>my-app-a</artifactId> 
<version>1.0.16-SNAPSHOT</version> 
<packaging>jar</packaging> 

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

Ancak, bunlardan biri diğer alır o kadar beklendiği gibi iken tamamen logback yapılandırmasını görmezden görünüyor.

Dosya adı, düzgün çalışmayan uygulama için logback.xml olarak değiştirilirse, aniden iyi çalışır (içinde kullandığım yay profilleriyle bile). İlgili yapılandırmaların hiçbirinde (pom.xml, application.properties, vs. anlamında) belirgin bir fark yoktur.

Durumun neden böyle olduğunu bilen var mı? Bu davranışı oldukça kafa karıştırıcı buluyorum.

+0

İki Spring Boot uygulaması arasında muhtemelen bir fark var. En azından onların pom.xml'sini göstermelisiniz. Bunlar yardımcı olabilir. – davidxxx

+0

Sürüm numarası ile bir hata yaptınız mı? Logback 1.7.1 mevcut değil –

+0

@AndyWilkinson: Doğru - bir yazım hatası oldu. –

cevap

1

Biliyorum biraz eski, ama aynı sorunu yaşadım ve anladım ... bu yüzden sebep sadece sınıf yolunuzda bir logback.xml var (bir yerde, başlangıçta projenizde değil) Benim durumumda bir bağımlılık oldu.

burada bir göz atın:

org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(LoggingInitializationContext, LogFile) o zaman göreceksiniz, kesme noktası ayarlamak.

Yay önyükleme, sınıf yolu üzerinde herhangi bir günlüğe kaydetme yapılandırmaları bulamazsa ("günlüğe kaydetme-test.groovy", "günlüğe kaydetme-test.xml", "günlüğe kaydetme.", "Günlüğü.xml") .xml alınacak.

+0

aslında çok anlam ifade ediyor ve sorunun nedenini tam olarak biliyordu - teşekkürler –

1

Uygulama dosyasında, config dosyasının yerini bu şekilde belirtebilirim.

logging.config=path 

Spring bu dosya adını aramıyor olabilir. Onlar bu Adını logback-spring.xml kullanarak yerine sadece mümkünse

Ben application.properties yapılandırmayı sokacak logback.xml öneririz Spring doc

.

+4

Elbette bunu yapabilirdim ama uygulama NEDEN seçildi sorusuna yanıt vermez Aynı yapılandırmayı görmezden gelmek için diğer uygulama göz ardı etmez. –