And I doubt there are many use cases where doing that will be an issue. Ralph
> On Aug 19, 2017, at 5:35 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > > The only change I am now talking about is replacing getName() with > getCannonicalName(). > > Gary > > On Aug 19, 2017 18:00, "Remko Popma" <remko.po...@gmail.com> wrote: > >> No objection to creating logger names from Class.getCanonicalName() instead >> of Class.getName(). I assume that this means we don't need a custom >> toLoggerName(Class) >> method. >> >> Question for our Scala experts: does Class.getCanonicalName() preserve the >> trailing $ in Scala classes? >> >> At some point there was talk of API changes. Is that still needed? >> Finally, I guess in order to keep supporting the current behaviour as well, >> we still need to build configuration support for this <Configuration >> hierarchySeparators="./$" ... Is my understanding correct? >> >> >> On Sun, Aug 20, 2017 at 3:47 AM, Ralph Goers <ralph.go...@dslextreme.com> >> wrote: >> >>> I agree. >>> >>> Ralph >>> >>>> On Aug 19, 2017, at 11:43 AM, Matt Sicker <boa...@gmail.com> wrote: >>>> >>>> Canonical name sounds like it makes sense. I wonder what that evaluates >>> to >>>> in other JVM languages like Scala, Kotlin, Clojure, etc., but it seems >> to >>>> make sense. >>>> >>>> On 19 August 2017 at 13:23, Dominik Psenner <dpsen...@gmail.com> >> wrote: >>>> >>>>> To me it is a simple and good solution to the problem. The first >>> outlined >>>>> solution has the pro that it would give a user more sophisticated ways >>> to >>>>> build logger hierarchies from class names, but it is also something >> that >>>>> only a very small subset of users would use. We can keep that as a >> wish >>> for >>>>> later. >>>>> >>>>> 2017-08-19 20:13 GMT+02:00 Gary Gregory <garydgreg...@gmail.com>: >>>>> >>>>>> Any opposition to using the canonical name? >>>>>> >>>>>> Gary >>>>>> >>>>>> On Aug 14, 2017 15:28, "Gary Gregory" <garydgreg...@gmail.com> >> wrote: >>>>>> >>>>>>> In LogManager, if we call getCanonicalName() instead of getName(), >> we >>>>>> only >>>>>>> get "."s, no "$"s... >>>>>>> >>>>>>> How about that? >>>>>>> >>>>>>> Gary >>>>>>> >>>>>>> On Mon, Aug 14, 2017 at 3:24 PM, Gary Gregory < >> garydgreg...@gmail.com >>>> >>>>>>> wrote: >>>>>>> >>>>>>>> Another way to look at this is that instead of calling >>> class.getName() >>>>>> we >>>>>>>> would call our own toLoggerName(Class) which would NOT use $ but >> only >>>>>> use >>>>>>>> "."s. >>>>>>>> >>>>>>>> Gary >>>>>>>> >>>>>>>> On Mon, Aug 14, 2017 at 3:07 PM, Matt Sicker <boa...@gmail.com> >>>>> wrote: >>>>>>>> >>>>>>>>> The logger name hierarchy interpretation is handled at the string >>>>>> level, >>>>>>>>> not the class level. I don't think the class needs to be passed >>> along >>>>>> as >>>>>>>>> there isn't much useful info we can get from the Class instance >> that >>>>> we >>>>>>>>> can't already figure out from its FQCN. >>>>>>>>> >>>>>>>>> On 14 August 2017 at 15:56, Ralph Goers < >> ralph.go...@dslextreme.com >>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Aug 14, 2017, at 1:38 PM, Gary Gregory < >>>>> garydgreg...@gmail.com> >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> On Mon, Aug 14, 2017 at 2:08 PM, Ralph Goers < >>>>>>>>> ralph.go...@dslextreme.com >>>>>>>>>> <mailto:ralph.go...@dslextreme.com>> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> On Aug 14, 2017, at 11:49 AM, Gary Gregory < >>>>>> garydgreg...@gmail.com >>>>>>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, Aug 14, 2017 at 12:35 PM, Gary Gregory < >>>>>>>>> garydgreg...@gmail.com >>>>>>>>>>> >>>>>>>>>>>>> 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? >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Why does it mean that? >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> If we want the core to implement converting Class names to >> Logger >>>>>>>>> names, >>>>>>>>>>> the Class must be passed down to the Core. Right now the >>>>> LogManager >>>>>>>>> does >>>>>>>>>>> that by calling org.apache.logging.log4j.spi.LoggerContext >>>>>> methods. >>>>>>>>>> These >>>>>>>>>>> methods take only String for the logger name. >>>>>>>>>> >>>>>>>>>> And that is a problem becauseā¦.? I am trying to understand why >>>>>>>>>> LoggerContext will be required to accept a class name. >>>>>>>>>> >>>>>>>>>> Ralph >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Matt Sicker <boa...@gmail.com> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Dominik Psenner >>>>> >>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>> >>> >>> >>