Please remember that mine is just one opinion, but I am fine with that.  I 
guess if no default value is provided this way then it can still fall back to 
looking in the properties map.

Ralph


On Oct 9, 2013, at 12:53 PM, Woonsan Ko <[email protected]> wrote:

> Hi Ralph,
> 
> 
> I have something related to this improvement idea.
> I have thought it might be a bit more useful and flexible to allow default 
> value in the variable expression itself.
> For example, ${var1:-defvalue1}, ${ctx:request_id:-defvalue2}, etc.
> This generic feature has been included in StrSubstitutor of commons-lang3 
> with the following issue:
> - https://issues.apache.org/jira/browse/LANG-893
> 
> I understand Oliver's patch should work more efficiently for map pattern 
> converters, but the goodness of the feature with LANG-893 is we can use it 
> more widely whenever used in look ups.
> 
> I know StrSubstitutor in log4j2 added more operations to deal with LogEvent 
> argument, so I can create a patch to include the feature of LANG-893 if it is 
> useful for others.
> Also, Oliver's patch won't conflict with this patch.
> 
> What do you think?
> 
> Kind regards,
> 
> Woonsan
> 
> 
>> On Tuesday, October 1, 2013 9:21 AM, Ralph Goers <[email protected]> wrote:
>>> Patches are always welcome!
>> 
>> Ralph
>> 
>> On Oct 1, 2013, at 1:13 AM, Oliver Flege <[email protected]> wrote:
>> 
>>>> $${mdc:request_id} in a pattern should cause the request_id to be 
>> evaluated on every event.
>>> 
>>> thanks a lot, $${ctx:request_id} seems to do the trick
>>> 
>>> however, the computation of the default value is quite complex as it always 
>> involves
>>> a variable substitution, and I cannot use conversion specifiers with $$ as 
>> I can with %X
>>> 
>>> Would you consider accepting a patch that adds support for slf4j-like 
>> default values
>>> in %X{key} and %K{key}, s.th. like %X{key:-defaultValue} ?
>>> 
>>> Regards,
>>> Oliver
>>> 
>>> 
>>> 
>>>> 
>>>>> On Sep 30, 2013, at 8:04 AM, Oliver Flege <[email protected]> 
>> wrote:
>>>>> 
>>>>> ok, this works for ${...} expressions in the configuration, 
>> but I don't see how it would
>>>>> apply to pattern evaluation. To simplify and rephrase my original 
>> question:
>>>>> 
>>>>> Given a pattern layout with a pattern like:  %X{REQUEST_ID}
>>>>> 
>>>>> is it possible to define a default value that will be printed
>>>>> if the thread never executed 
>> ThreadContext.put("REQUEST_ID", "XYZ")?
>>>>> 
>>>>> I tried ${mdc:REQUEST_ID} + a Property REQUEST_ID, but that
>>>>> will only be evaluated when the configuration is parsed.
>>>>> 
>>>>> Oliver
>>>>> 
>>>>>> Yes, it supports default values. Specify them as properties at 
>> the beginning of your configuration. Then when you specify something like 
>> ${sys:foo} if foo is not defined as a system property the default value 
>> will be used,
>>>>>> 
>>>>>> Ralph
>>>>>> 
>>>>>>> On Sep 30, 2013, at 3:30 AM, Oliver Flege 
>> <[email protected]> wrote:
>>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I am considering to switch from slf4j/logback to log4j2;
>>>>>>> 
>>>>>>> in slf4j/logback, I can specify a default value for a 
>> missing mdc entry
>>>>>>> like this:
>>>>>>> 
>>>>>>> <pattern>%d{HH:mm:ss} %X{FOO:--} %c{0} 
>> - %m%n</pattern>
>>>>>>> 
>>>>>>> which would print "-" if mdc.get("FOO") 
>> is null (the ":-" separates
>>>>>>> the key and the default value).
>>>>>>> 
>>>>>>> Having a defined number of tokens/fields at the beginning 
>> of the log message
>>>>>>> makes it easier to process it with awk/cut etc.
>>>>>>> 
>>>>>>> 
>>>>>>> Does log4j support default values? - I could not find any 
>> hint in the documentation
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> Regards,
>>>>>>> Oliver
>>>>>>> 
>>>>>>> 
>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: 
>> [email protected]
>>>>>>> For additional commands, e-mail: 
>> [email protected]
>>>>>> 
>>>>>> 
>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: 
>> [email protected]
>>>>>> For additional commands, e-mail: 
>> [email protected]
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Oliver Flege
>>>>> Senior Software Engineer | vwd group
>>>>> 
>>>>> vwd Vereinigte Wirtschaftsdienste AG
>>>>> Stiftsplatz 6/7 | 67655 Kaiserslautern
>>>>> Telefon: +49 631 3649-0 | Telefax: +49 631 3649-109
>>>>> [email protected] | www.vwd.com
>>>>> ______________________________________________________________
>>>>> 
>>>>> vwd Vereinigte Wirtschaftsdienste AG
>>>>> Sitz der Gesellschaft: Tilsiter Straße 1 | 60487 Frankfurt am Main
>>>>> Handelsregister: AG Frankfurt am Main HRB 81011
>>>>> Vorstand: Dr. Ralf Kauther
>>>>> Vorsitzender des Aufsichtsrates: Dr. Thorsten Dippel
>> 
>>>>> ____________________________________________________________
>>>>> 
>>>>> 
>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>> 
>>> 
>>> -- 
>>> Oliver Flege
>>> Senior Software Engineer | vwd group
>>> 
>>> vwd Vereinigte Wirtschaftsdienste AG
>>> Stiftsplatz 6/7 | 67655 Kaiserslautern
>>> Telefon: +49 631 3649-0 | Telefax: +49 631 3649-109
>>> [email protected] | www.vwd.com
>>> ______________________________________________________________
>>> 
>>> vwd Vereinigte Wirtschaftsdienste AG
>>> Sitz der Gesellschaft: Tilsiter Straße 1 | 60487 Frankfurt am Main
>>> Handelsregister: AG Frankfurt am Main HRB 81011
>>> Vorstand: Dr. Ralf Kauther
>>> Vorsitzender des Aufsichtsrates: Dr. Thorsten Dippel
>>> ____________________________________________________________
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to