2013-11-14 7 views
5

Bir sistem özelliğini değiştirerek birden çok ortamda çalışacak tek bir yapılandırmaya sahip olmak istiyorum. Aşağıdaki örnek şu şekildedir: Birisi sistem özelliğini ayarlamayı unuttuğunda hala düzgün çalıştığından emin olmak istiyorum. Özellikler dosyasında bir varsayılan değer belirtmenin bir yolu var mı?Bir log4j özelliği için varsayılan değeri nasıl belirleyebilirim

cevap

2

Bu mümkün olabilir. org.apache.log4j.PropertyConfigurator için API belgelerine göre, değişkeniniz önce sistem özelliklerinde değer aramalı ve eğer orada bulunmuyorsa, bunun yerine yapılandırma dosyasında arama yapmalıdır.

Tüm opsiyon değerleri değişken değişimi kabul ediyorum. Değişken ikamesinin sözdizimi Unix kabuklarınınkine benzer. arasındaki "$ {" ve "}" kapanışı arasındaki dize bir anahtar olarak yorumlanır. değiştirilmiş değişkeninin değeri, bir sistem özelliği olarak veya yapılandırma dosyasının kendisinde tanımlanabilir. Anahtarın değeri ilk olarak sistem özelliklerinde aranır ve orada bulunmazsa, içinde ayrıştırılan yapılandırma dosyası içinde aranır. İlgili değer 'un yerine $ {variableName} dizisini alır. Örneğin, java.home sistemi özelliği/home/xyz olarak ayarlanmışsa, $ {java.home} dizisinin her oluşumu/home/xyz olarak yorumlanır.

https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html

Yapılandırma dosyasında değişken seti olsa sistem özelliklerini geçersiz olsaydı doğrulamak zorunda kalacaktır.