This sounds interesting. I might give it a whirl but firstI am trying to finish up some work on Apache Flume so it can get a new release and I need to do some other work here as we are overdue for a release.
Ralph > On Oct 21, 2021, at 11:28 AM, Adwait Kumar Singh > <theadvaitkumarsi...@gmail.com> wrote: > > The problem I am stuck on is the best way to get the user to provide the > ruleSupplier via configuration. > > On Thu, Oct 21, 2021 at 11:55 PM Adwait Kumar Singh < > theadvaitkumarsi...@gmail.com> wrote: > >> Yes I mean filtering on those loggers. >> >> I don't expect the Supplier to be dynamically changed, only the rules they >> are fetching. Something roughly like this >> >> public class RuleBaseFilter extends AbstractFilter { >> >> //This will be initialized only once >> Supplier<List<Rules>> rulesSupplier; >> >> >> @Override >> public Result filter(final Logger logger, final Level level, final >> Marker marker, final Message msg, >> final Throwable t) { >> List<Rules> rules = rulesSupplier.get(); >> //evaluate rules and filter >> } >> >> } >> >> >> >> >> >> On Thu, Oct 21, 2021 at 11:19 PM Ralph Goers <ralph.go...@dslextreme.com> >> wrote: >> >>> Sorry, you have lost me a little bit. >>> >>> When you say dynamically turn on/off loggers I am assuming you really >>> mean >>> enable/disable filtering on those Loggers? >>> >>> Are you thinking that the rules can be added or removed dynamically? Or >>> just the >>> parameters to the rules? I ask because you can’t really add a Supplier >>> dynamically >>> if it is part of the configuration. Log4j will process the configuration >>> only when it is >>> changed. However, the data they rely on can come from anywhere - more or >>> less >>> how we use Lookups to evaluate conditions on every log event. >>> >>> Ralph >>> >>>> On Oct 21, 2021, at 8:44 AM, Adwait Kumar Singh < >>> theadvaitkumarsi...@gmail.com> wrote: >>>> >>>> This is still in the proof of concept phase, but what I am trying to do >>> is >>>> create a filter which allows developers to dynamically turn on/off >>> loggers >>>> based on some parameters without restarting their system. The parameters >>>> can be varied, like: >>>> 1. Turn on WARN log levels of a particular class. >>>> 2. Turn on TRACE logging only on a particular host. >>>> 3. Turn on DEBUG logs only for requests by a particular client for a >>> short >>>> duration, >>>> ... and any combination of such parameters. >>>> >>>> The way I was thinking of doing this was creating a filter which takes >>> in a >>>> Supplier<Rule> and then evaluates a log event against that rule. >>>> >>>> On Thu, Oct 21, 2021 at 7:37 PM Apache <ralph.go...@dslextreme.com> >>> wrote: >>>> >>>>> It sounds to me like you want to create a new type of plugin similar to >>>>> PatternConerters. I am curious as to what your filter does. Is it >>> something >>>>> that would be useful to others so that we would be interested in >>> including >>>>> it? >>>>> >>>>> Ralph >>>>> >>>>>> On Oct 21, 2021, at 6:07 AM, Adwait Kumar Singh < >>>>> theadvaitkumarsi...@gmail.com> wrote: >>>>>> >>>>>> I am creating a filter which requires the user to give a >>> Supplier<Rule> >>>>> to >>>>>> fetch some custom rules. I am wondering how to go about getting this >>>>>> Supplier from the configuration xml. >>>>>> >>>>>> One way I have thought of is using some sort of Registry and then just >>>>>> asking the user to provide a key to lookup into the Registry to fetch >>> the >>>>>> Supplier. The user then registers his Supplier to this Registry in >>> Java >>>>>> code. >>>>>> What are your thoughts on this and do you guys know of a better way >>> to do >>>>>> this? >>>>>> >>>>>> Thanks, >>>>>> Adwait. >>>>> >>>>> >>>>> >>> >>> >>>