Thanks for getting back to me Ralph. I'll try the API pattern you provided.

Gary


On Tue, Oct 19, 2021, 11:33 Ralph Goers <[email protected]> wrote:

> You are free to put dots in marker names, or any other character for that
> matter.
>
> Markers are created with MarkerManager. Every marker has a unique name and
> can
> only have one parent. So the way you have expressed the problem below is
> really incorrect.
>
> I really don’t like your example as most people would leave a node named
> “children” out
> because it is redundant. Being a child is an object relationship. So
> “Children” is a
> child of Bob in your example and John and Jimmy are children of “Children”.
>
> What you really have looks something like:
>
>     Pet
>        ↑
>  Mammal
>  ↑       ↑
> Cat  Dog
>
> To create this you have to do:
> Marker pet = MarkerManager.createMarker(“Pet”);
> Marker mammal = MarkerManager.createMarker(“Mammal” ,pets);
> Marker cat = MarkerManager.createMarker(“Cat”, mammal);
> Marker dog = MarkerManger.createMarker(“Dog”, mammal);
>
> The equivalent problem is that we now want  a parent named “Wild Animals”.
> Of course
> it could also have mammals. But to do that you would need to have the
> marker be named
> something like “Wild Mammals”.
>
> That is just the way it is because in your configuration you do not
> specify “Pet.Mammal.Cat”
> as the marker name. You only specify “Cat”. Or you can specify “Pet” in
> the configuration
> and it will match any event using the “Mammal”, “Cat”, or “Dog” marker.
>
> The reason a Marker can only have a single parent is strictly due to
> performance. Walking
> the parent markers to see if there is a match is not particularly fast.
> Having to traverse
> multiple parent hierarchies would make it even slower. As it is, I suspect
> Markers aren’t
> used that heavily so trying to make it even fancier seems like overkill.
>
> Ralph
>
>
> > On Oct 19, 2021, at 6:55 AM, Gary Gregory <[email protected]>
> wrote:
> >
> > Hi All,
> >
> > I get bit by this every time I try to make my markers "fancy" so I took
> the
> > time this go around to open up a discussion :-)
> >
> > I want markers:
> >
> > Bob.children.John
> > Bob.children.Jimmy
> > Alice.children.Rose
> > Alice.children.Sue
> > (Never mind Alice.chidren.Bob)
> >
> > I want to turn off only "Bob.children" but I can't because "children" is
> > effectively global and either can be defined in code with:
> > Only Bob as it's parent,
> > Only Alice as it's parent,
> > Both Bob and Alice as parents (uh...?)
> >
> > This is a complete mismatch with hierarchical naming with have with
> Loggers
> > and confusing to no end, and not documented.
> >
> > Can/should we "fix" markers to behave like a clean hierarchy?
> >
> > Or, should hierarchical marker names be provided in some different way?
> > With a different character than a dot for example?
> >
> > I was about to write some docs internal to a product at work to show how
> to
> > get logging to perform these fancy tricks but I won't until I get a
> > clearer picture of what we can/should do for this type of use case.
> >
> > TY!
> > Gary
>
>
>

Reply via email to