I've used ThresholdFilter to have the log level check at the level of the (sub) appender:
"ThresholdFilter": { "level": "${my:threadgroup.jobLogLevel}", "onMatch": "ACCEPT", "onMismatch": "DENY" } Of course then I need to have the root logger in TRACE to let everything in to be filtered later on by the appender: "loggers": { "root": { "level": "TRACE", "additivity": "false", "includeLocation": "true", "AppenderRef": { "ref": "JobsRoutingAppender" } } } What do you think of this? Is performance a concern with this approach? On Thu, Apr 25, 2019 at 9:33 AM Ralph Goers <ralph.go...@dslextreme.com> wrote: > Another possibility would be to have a ThreadGroupContextSelector and then > use a different LoggerContext and configuration for each ThreadGroup. > However, that could get very complicated. The RoutingAppender pretty much > accomplishes the same thing and would be much easier to do. > > Ralph > > > On Apr 25, 2019, at 9:21 AM, Matt Sicker <boa...@gmail.com> wrote: > > > > Oh damn, right, bit of a limitation there. I'll ponder on this a bit. > > > > On Thu, 25 Apr 2019 at 11:18, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > >> > >> Matt, Benjamin’s issue is that he has no control over what is running > in the “jobs” but he wants all the logs for a “job” to end up in the same > appender. His definition of a job is that he is creating a thread to run it > and everything under that thread should route to that Appender. So he > cannot control what logger names are used much less whether they have > Markers or not. > >> > >> Ralph > >> > >>> On Apr 25, 2019, at 8:59 AM, Matt Sicker <boa...@gmail.com> wrote: > >>> > >>> On Wed, 24 Apr 2019 at 18:47, Benjamin Jaton <benjamin.ja...@gmail.com> > wrote: > >>>> I've implemented the solution based on ThreadGroups. Now I am trying > to > >>>> have a separate log level per job. The goal is to be able to set one > job in > >>>> DEBUG or TRACE while the others stay in WARN. Possible? > >>>> The RoutingAppender creates an appender per route but as far as I > know I > >>>> cannot set a log level on the appender object. I guess filters could > be > >>>> used but is there something simpler I'm missing? > >>> > >>> I think you'd be better off using markers for that. See > >>> https://logging.apache.org/log4j/2.x/manual/markers.html > >>> > >>> You might also be able to just use a naming scheme for your loggers > >>> that automatically makes them separately configurable as typical > >>> loggers. For example, say you use a naming scheme > >>> "com.example.threadgroup.<groupName>" as your loggers. Then you could > >>> configure them by name as usual. > >>> > >>> -- > >>> Matt Sicker <boa...@gmail.com> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > >>> For additional commands, e-mail: log4j-user-h...@logging.apache.org > >>> > >>> > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > >> For additional commands, e-mail: log4j-user-h...@logging.apache.org > >> > > > > > > -- > > Matt Sicker <boa...@gmail.com> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > > For additional commands, e-mail: log4j-user-h...@logging.apache.org > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > >