Interesting, that didn't work (because it was printing the exact string
"{${web:servletContextName}" when the servlet name was missing) but using
your approach I got something that works:

%equals{${web:servletContextName}}{${web:servletContextName}}{%pid}

I wonder if a simpler solution exists though.

Thank you for your response.

On Fri, Mar 26, 2021 at 5:27 AM Volkan Yazıcı <volkan.yaz...@gmail.com>
wrote:

> Hello Clement,
>
> I am not an expert on *PatternLayout* and lookups, but I think I have a
> hypothesis about what is going wrong and how you can fix it.
>
> *${web:servletContextName:-${sys:user.name <http://user.name>}}* lookup
> works, because the substitute is again a *lookup*. Though
> *${web:servletContextName:-%pid}* lookup doesn't work, because the
> substitute is a *pattern*. I think the following would do the trick:
> *%equals{${web:servletContextName}}{}{%pid}*. Would you mind checking,
> please?
>
> Kind regards.
>
> On Thu, Mar 25, 2021 at 2:32 AM Clément Guillaume <cguilla...@hotpads.com>
> wrote:
>
> > Hello,
> >
> > I'm trying to make a log pattern showing the servlet context name or, if
> > missing, showing the process id.
> >
> > ${web:servletContextName} %msg
> > works well for servlet context name alone.
> >
> > %pid %msg
> > works well for process id alone.
> >
> > ${web:servletContextName:-${sys:user.name}} %msg
> > works well for servlet context name with fallback to username system
> > property ,
> >
> > ${web:servletContextName:-%pid} %msg
> > does work for servlet context name with fallback to process id.
> >
> > Am I missing something in my pattern?
> >
> > Thank you
> >
>

Reply via email to