2011-11-13 23 views
6

Tôi đang cố gắng sử dụng thay thế biến cho thuộc tính scanPeriod sao cho tôi có thể có nhiều tệp môi trường.Logback không thể nhận ra thay thế biến cho thuộc tính scanPeriod

Có vẻ như Logback không thể nhận dạng variable substitution đối với các thuộc tính nhất định.

Ví dụ scanPeriod tài sản: Cấu hình

Logback:

<configuration scan="${scan:-true}" scanPeriod="${scan-interval:-10 minutes}"> 

rõ để có giá trị mặc định là 10 phút của tài sản logback không được định nghĩa.

tính Logback:

scan=true 
scan-interval=30 seconds 

Khách sạn này nên ghi đè cấu hình mặc định là 10 phút.

Logback lỗi:

java.lang.IllegalArgumentException: String value [${scan-interval:-10 minutes}] is not in the expected format. 

Theo Duration API, định dạng thời gian là đúng.

này được sử dụng:

  • slf4j 1.6.2
  • logback classis 0.9.30
  • lõi logback 0.9.30

EDIT: Filed một báo cáo Jira cho điều này - http://jira.qos.ch/browse/LBCLASSIC-307

CẬP NHẬT: 28 Dec 2011 Điều này được đánh dấu là một Thiếu tá, và được nhìn bởi Ceki Gulcu. : D

CẬP NHẬT: 12 Jun 2012 Vẫn không có cập nhật. Nhận xét trái trong JIRA.

CẬP NHẬT: 12 tháng 7 năm 2012 Được chấp nhận là lỗi hợp lệ. Để khắc phục trong 1.0.7

Trả lời

2

Theo Duration API mà bạn đăng, bạn cũng có thể sử dụng (không có khoảng trắng):

<configuration scan="${scan:-true}" scanPeriod="${scan-interval:-10minutes}"> 

private static final Pattern DURATION_PATTERN = Pattern.compile(DOUBLE_PART 
           + "\\s*" + UNIT_PART, Pattern.CASE_INSENSITIVE); 
+0

Cảm ơn người đứng đầu, yepp. –

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