I uploaded a patch for the issue (to allow inline default value setting in general after the variable name and the delimiter): - https://issues.apache.org/jira/browse/LOG4J2-419
Please take a review. Cheers, Woonsan > On Wednesday, October 9, 2013 4:19 PM, Ralph Goers > <[email protected]> wrote: > > 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] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
