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