logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Jaton <benjamin.ja...@gmail.com>
Subject Re: How to have a separate log file for a thread and all sub threads?
Date Mon, 29 Apr 2019 19:18:04 GMT
Yes I've explored that route a little bit, inspired by the existing
ClassLoaderContextSelector implementation.

One thing I'm not sure about is how do you "set" the log level on a whole
LoggerContext?

On Mon, Apr 29, 2019 at 12:03 PM Ralph Goers <ralph.goers@dslextreme.com>
wrote:

> If you created a ThreadGroupContextSelector it probably would perform
> better, but you might be trading one set of problems for another.
>
> Ralph
>
> > On Apr 29, 2019, at 11:58 AM, Benjamin Jaton <benjamin.jaton@gmail.com>
> wrote:
> >
> > I ended up making a DynamicThreadholdFilter to be able to resolve the log
> > level dynamically.
> >
> > What's not so great is that this management of the log level with a
> "post"
> > filter requires the logger to let everything through (TRACE).
> > So then methods like isDebugEnabled() will always return true.
> >
> > Anyways for my use case we'll have to go with this as we need a log level
> > per job (threadgroup).
> >
> > On Mon, Apr 29, 2019 at 11:43 AM Matt Sicker <boards@gmail.com> wrote:
> >
> >> Requiring the use of ThreadContext data everywhere can slow things
> >> down a little, though not sure by how much.
> >>
> >> On Thu, 25 Apr 2019 at 13:35, Benjamin Jaton <benjamin.jaton@gmail.com>
> >> wrote:
> >>>
> >>> 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.goers@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 <boards@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.goers@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 <boards@gmail.com>
wrote:
> >>>>>>>
> >>>>>>> On Wed, 24 Apr 2019 at 18:47, Benjamin Jaton <
> >> benjamin.jaton@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 <boards@gmail.com>
> >>>>>>>
> >>>>>>>
> >> ---------------------------------------------------------------------
> >>>>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >>>>>>> For additional commands, e-mail:
> >> log4j-user-help@logging.apache.org
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >>>>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Matt Sicker <boards@gmail.com>
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >>>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> >>>>
> >>>>
> >>
> >>
> >>
> >> --
> >> Matt Sicker <boards@gmail.com>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >> For additional commands, e-mail: log4j-user-help@logging.apache.org
> >>
> >>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message