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 > > >
