2012-06-19 29 views
5

Tôi đang sử dụng http://logback.qos.ch/Làm cách nào để tạo logback đọc tệp thuộc tính mà tên là biến?

Tôi đang chạy quá trình java của tôi với một tham số ví dụ -Dproperties.url=myappproperties-production.properties hoặc -Dproperties.url=myappproperties-development.properties tùy thuộc vào environemnt nó được chạy trong

. Vấn đề: làm thế nào để làm cho logback nhặt tài sản của tôi nộp?

Nếu các thuộc tính tập tin tên là tĩnh tôi sẽ làm (hoạt động tốt):

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

Nhưng tôi cần một cái gì đó rất linh hoạt (này không làm việc):

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

Trả lời

4

Giá trị của tệp tài nguyên có thể là chính thuộc tính. Nói cách khác,

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

sẽ hoạt động. BYW, đặt thuộc tính debug của <configuration> thành phần true để xem các thông báo nội bộ của logback trên bảng điều khiển. Bạn đang sử dụng phiên bản logback nào?

+0

Vấn đề là '' và '' không thể xử lý các URL ví dụ 'file: /// path/to/my. thuộc tính'. Họ chỉ có thể xử lý đường dẫn đến tệp. Tôi đã nêu ra một vấn đề [http://jira.qos.ch/browse/LOGBACK-711](http://jira.qos.ch/browse/LOGBACK-711). –

+0

thực sự nó hoạt động - thất bại cho tôi lúc đầu nhưng tôi phải có một lỗi đánh máy. Quan trọng đối với tôi, nó hoạt động ngay cả khi thuộc tính tên tệp được tải từ tệp thuộc tính. Nhưng lý do thực sự tôi đang +1 đây là cài đặt gỡ lỗi. Đó là một mẹo mà tôi muốn tôi biết ngày hôm qua !! – Rhubarb

+0

Đã không làm việc cho tôi, thay vào đó điều này làm việc hoàn hảo, được đề xuất bởi tài liệu Spring: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html – Sohail

0

Bạn sẽ xử lý điều này như thế nào nếu giá trị url thuộc tính nằm trong dấu phẩy ngược? ví dụ:

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

Tôi chỉ cố gắng này và nó làm việc

Lý do tôi hỏi là vì phiên bản mới nhất của Amazon AMI ở Amazon Elastic Beanstalk cho biết thêm dấu ngoặc kép xung quanh một giá trị tài sản - ngay cả khi một doesnt người dùng chỉ định này

0

Đây là mùa xuân cách đề nghị:

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

tài liệu tham khảo: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html

Các vấn đề liên quan