On Mon, Aug 14, 2017 at 12:35 PM, Gary Gregory <[email protected]>
wrote:

> Probably for Ralph:
>
> Right now, it's the LogManager in log4j-api that converts Class names into
> Logger names.
>
> There is no getLogger(Class) API in the Core LoggerContext.
>
> Should we push down this conversion into Core's LoggerContext?
>
> It seems the sane thing to do to:
> - Avoid making something pluggable in log4j-api
> - Avoid making Core parse logger names looking for separators.
>

But that would mean adding two methods to:

org.apache.logging.log4j.spi.LoggerContext:

org.apache.logging.log4j.spi.LoggerContext.getLogger(Class<?>)
org.apache.logging.log4j.spi.LoggerContext.getLogger(Class<?>,
MessageFactory)

Thoughts?

Gary



> Gary
>
>
> On Mon, Aug 14, 2017 at 2:14 AM, Dominik Psenner <[email protected]>
> wrote:
>
>> I wrote this up in a jira issue at [1]. Unfortunately I'm struggling with
>> my health and I can't give an estimate of when I can work on this. If you
>> want it for the next release, please take over the work right away as I
>> won't be able to contribute further.
>>
>> [1] https://issues.apache.org/jira/browse/LOG4J2-2010
>>
>> 2017-08-14 1:14 GMT+02:00 Gary Gregory <[email protected]>:
>>
>> > Recapping:
>> >
>> > Using it:
>> >
>> > <Configuration hierarchySeparators="./$" ...
>> >
>> > Default:
>> >
>> > <Configuration hierarchySeparators="." ...
>> >
>> > Dominik: Do you want to take a shot at it?
>> >
>> > Gary
>> >
>> >
>> >
>> > On Sun, Aug 13, 2017 at 2:58 PM, Ralph Goers <
>> [email protected]>
>> > wrote:
>> >
>> > > Yes, that is the way I would envision it. The default would be how it
>> > > works now.
>> > >
>> > > Ralph
>> > >
>> > > > On Aug 13, 2017, at 12:37 PM, Gary Gregory <[email protected]>
>> > > wrote:
>> > > >
>> > > > Well we can make an exception for trailing $?
>> > > >
>> > > > Do we want to add an attribute in the Configuration XML element? For
>> > > > example hierarchySeparators=".$/"
>> > > >
>> > > > What should the default be?
>> > > >
>> > > > Gary
>> > > >
>> > > > On Aug 13, 2017 12:17, "Matt Sicker" <[email protected]> wrote:
>> > > >
>> > > >> Having the dollar sign interpreted differently also makes a
>> difference
>> > > in
>> > > >> Scala classes and potentially other languages. For example, in
>> Scala,
>> > an
>> > > >> "object" class is a singleton instance of the class (vaguely
>> similar
>> > to
>> > > a
>> > > >> class with all static methods and fields), and it's translated to a
>> > Java
>> > > >> class name with a dollar sign appended. The Scala code "object Foo
>> {
>> > > ... }"
>> > > >> translates to the equivalent of "public class Foo$ { public static
>> > Foo$
>> > > >> MODULE$ = new Foo$(); ... }" or something like that.
>> > > >>
>> > > >> On 13 August 2017 at 11:08, Apache <[email protected]>
>> > wrote:
>> > > >>
>> > > >>> You cannot replace. We always must support dots. But some people
>> have
>> > > >>> asked for '/' as well.
>> > > >>>
>> > > >>> Sent from my iPad
>> > > >>>
>> > > >>>> On Aug 13, 2017, at 8:38 AM, Dominik Psenner <[email protected]
>> >
>> > > >> wrote:
>> > > >>>>
>> > > >>>> Yes
>> > > >>>>
>> > > >>>>> On 13 Aug 2017 5:13 p.m., "Gary Gregory" <
>> [email protected]>
>> > > >>> wrote:
>> > > >>>>>
>> > > >>>>> You are talking about replacing $ with dot in the
>> getLogger(Class)
>> > > >> API?
>> > > >>>>>
>> > > >>>>> Gary
>> > > >>>>>
>> > > >>>>>> On Aug 13, 2017 01:57, "Dominik Psenner" <[email protected]>
>> > > wrote:
>> > > >>>>>>
>> > > >>>>>> Could the $ be replaced by a dot when the logger is
>> instantiated?
>> > > >>> Log4net
>> > > >>>>>> picks the class name as logger name but also allows custom
>> logger
>> > > >>> names.
>> > > >>>>>>
>> > > >>>>>> On 13 Aug 2017 8:30 a.m., "Ralph Goers" <
>> > [email protected]
>> > > >
>> > > >>>>>> wrote:
>> > > >>>>>>
>> > > >>>>>>> Rather than implementing this I would rather have the
>> separator
>> > > >> chars
>> > > >>>>> be
>> > > >>>>>>> specifiable in the configuration. Blatantly making this change
>> > > might
>> > > >>>>>> cause
>> > > >>>>>>> compatibility problems, although I am not really sure how it
>> > could.
>> > > >>>>>>>
>> > > >>>>>>> Ralph
>> > > >>>>>>>
>> > > >>>>>>>> On Aug 12, 2017, at 11:29 AM, Gary Gregory <
>> > > [email protected]
>> > > >>>
>> > > >>>>>>> wrote:
>> > > >>>>>>>>
>> > > >>>>>>>> Hi All,
>> > > >>>>>>>>
>> > > >>>>>>>> I you use nested classes to build loggers, you end up with
>> > logger
>> > > >>>>> names
>> > > >>>>>>>> like A$N1, A$N2 and so on.
>> > > >>>>>>>>
>> > > >>>>>>>> If you then set a logger level in a config using "A", it does
>> > not
>> > > >>>>>> affect
>> > > >>>>>>>> A$N1 and A$N2 as you might expect, since "$" is not a ".".
>> > > >>>>>>>>
>> > > >>>>>>>> What about treating "$" like a "."?
>> > > >>>>>>>>
>> > > >>>>>>>> Thoughts?
>> > > >>>>>>>>
>> > > >>>>>>>> Gary
>> > > >>>>>>>
>> > > >>>>>>>
>> > > >>>>>>>
>> > > >>>>>>
>> > > >>>>>
>> > > >>>
>> > > >>>
>> > > >>>
>> > > >>
>> > > >>
>> > > >> --
>> > > >> Matt Sicker <[email protected]>
>> > > >>
>> > >
>> > >
>> > >
>> >
>>
>>
>>
>> --
>> Dominik Psenner
>>
>
>

Reply via email to