2012-06-19 12 views
5

Sto usando http://logback.qos.ch/Come posso fare in modo che il logback legga un file delle proprietà il cui nome è una variabile?

Sono in esecuzione il mio processo di Java con un parametro, ad esempio -Dproperties.url=myappproperties-production.properties o -Dproperties.url=myappproperties-development.properties a seconda del environemnt viene eseguito in

. Problema: come fare logback raccogliere le mie proprietà del file?

Se il file delle proprietà nome è statica che vorrei fare (funziona bene):

<configuration> 
    <property resource="myappproperties-development.properties" /> 
    (...) 
</configuration> 

Ma ho bisogno di qualcosa che è dinamico (questo non funziona):

<configuration> 
    <property resource="${properties.url}" /> 
    (...) 
</configuration> 

risposta

4

Il valore del file di risorse può essere una proprietà stessa. In altre parole,

<configuration debug="true"> 
    <property resource="${properties.url}" /> 
    (...) 
</configuration> 

dovrebbe funzionare. BYW, impostare l'attributo debug dell'elemento <configuration> su true per visualizzare i messaggi interni di logback sulla console. Quale versione di logback stai usando?

+0

Il problema era che '' e '' non può gestire URL per esempio 'file: /// percorso/a/mio. properties'. Possono solo gestire i percorsi dei file. Ho sollevato un problema [http://jira.qos.ch/browse/LOGBACK-711](http://jira.qos.ch/browse/LOGBACK-711). –

+0

in effetti funziona - non è riuscito per me all'inizio ma devo aver avuto un refuso. È importante per me, funziona anche se la proprietà del nome file viene caricata da un file di proprietà. Ma la vera ragione per cui sto aggiungendo questo è l'impostazione di debug. Questo è un suggerimento che vorrei sapere ieri !! – Rhubarb

+0

Non ha funzionato per me, invece ha funzionato perfettamente, consigliato dai documenti di Spring: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html – Sohail

0

Come gestirlo se il valore dell'URL delle proprietà era racchiuso tra virgolette? ad es.

-Dproperties.url="myappproperties-production.properties" 

Ho appena provato questo e non ha funzionato

Il motivo che mi chiedo è perché la versione più recente del Rio delle Amazzoni AMI nel Amazon Elastic Beanstalk aggiunge le virgolette intorno a un valore di proprietà - anche se un doesnt all'utente di specificare questo

0

questo è il metodo consigliato Primavera:

<configuration> 

    <springProfile name="local"> 
     <!-- configuration to be enabled when the "local" profile is active --> 
     <property resource="application-local.properties" /> 
    </springProfile> 

    <springProfile name="dev"> 
     <!-- configuration to be enabled when the "dev" profile is active --> 
     <property resource="application-dev.properties" /> 
    </springProfile> 

</configuration> 

documenti di riferimento: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html

Problemi correlati