I would like to define some properties in my logback.xml config file and saw that by implementing the PropertyDefiner was a great way to set properties in a customizable way.
After starting to implement it I began to wonder how to access the value of the name attribute of the element within the tag. I’m not seeing anyway to do this and I’m scratching my head. Would this PropertyDefiner really make you create a new implementation for every single property? Why not just hard code it? I didn’t see much discussion about this out on the web.
I hope I’m just not seeing it and that the brains of stackoverflow can help me out. Does anyone know how to do this? Thanks!
I found this discussion: essentially the same question is asked, but no answer was returned.
fyi: I want to customize how I get my properties because I am pulling it from a database. I have a helper class which pulls the properties in on server startup. These properties vary based on environment (dev, test, prod, etc.)
As of logback version 1.0.6, the value of the name attribute cannot be accessed directly. However, nothing prevents you from passing the value of the name attribute in a property of your choice. Example:
where
myKeyis a property ofYour.PropertyDefiner. For example:Joran, logback’s configuration framework, takes care of the wiring. Joran will inject the value of the myKey element into the myKey property of
Your.PropertyDefiner. If you are curious about the technical details, see the documentation on implicit actions and implicit actions in practice.