As I mentioned, what we're trying to do is capture events from our appenders. However, the part I didn't mention is that we *might* want to also "failover" the event which was sent to our appender to another appender. In that case we want to log the event our appender received to our appender's logger. I'm therefore trying to find out how to get the original object logged as I assume I don't want to pass the logEvent to the logger.
We've noticed that when we log one of our complex objects, such as: IEvent evnt = Event.create(...); logger.info(evnt); that our evnt object happens to be one of the parameters in the logEvent's message object. I'm trying to see how I can "resubmit" this event to the appender's logger in a consistent fashion regardless of how it was originally logged. So whether I do the above or: logger.Error("this is my error message"); within the appender I want to "failover" this event to the appender's logger. Is that possible? Thanks, Nick > Subject: Re: StatusLogger > From: ralph.go...@dslextreme.com > Date: Mon, 30 Nov 2015 13:01:23 -0700 > To: log4j-user@logging.apache.org > > To elaborate a bit more, if you call Log4j to log just a String then a > SimpleMessage will be passed in. If you log a String with parameters then you > will have either a ParameterizedMessage (the default) or a > StringFormattedMessage, MessageFormatMessage or FormattedMessage, depending > on the MessageFactory specified on the Logger. It also could be an RFC5424 > Message or a MapMessage in which case the Message will contain a Map of data > elements. Users can also create their own Message types. > > Ralph > > > On Nov 30, 2015, at 12:46 PM, Ralph Goers <ralph.go...@dslextreme.com> > > wrote: > > > > From Log4j’s perspective, what is logged is the Message. Each message may > > have a different way of encapsulating its information. > > > > Ralph > > > >> On Nov 30, 2015, at 8:33 AM, Nicholas Duane <nic...@msn.com> wrote: > >> > >> I'm not necessarily after the string. I'm trying to get the original > >> object that was passed to one of the logging methods. It could have been > >> a string or some complex object. > >> > >> Thanks, > >> Nick > >> > >>> Subject: Re: StatusLogger > >>> From: ralph.go...@dslextreme.com > >>> Date: Mon, 30 Nov 2015 08:30:37 -0700 > >>> To: log4j-user@logging.apache.org > >>> > >>> Log4j2 logs Message objects. The object being logged is contained within > >>> the message. You would normally call getFormattedMessage() to get the > >>> message String if that is what you are after. > >>> > >>> Ralph > >>> > >>>> On Nov 30, 2015, at 7:10 AM, Nicholas Duane <nic...@msn.com> wrote: > >>>> > >>>> Is there a way within an appender to get the original object logged? In > >>>> log4net we call LoggingEvent.MessageObject. In log4j2 it doesn't seem > >>>> as straight forward. A LogEvent object has a getMessage() method but I > >>>> assume that's some sort of wrapper around the object that was logged. > >>>> We currently have code which gets our complex object which was logged by > >>>> calling getParameters() and checking those objects against the interface > >>>> our object implements. However, if a simple string was logged how do we > >>>> get that? Can we always count on the zeroth element of the parameters > >>>> array to be the original object that was logged? > >>>> > >>>> Thanks, > >>>> Nick > >>>> > >>>>> Subject: Re: StatusLogger > >>>>> From: ralph.go...@dslextreme.com > >>>>> Date: Fri, 20 Nov 2015 12:08:38 -0700 > >>>>> To: log4j-user@logging.apache.org > >>>>> > >>>>> OK - so it sounds like you are fine. > >>>>> > >>>>> Ralph > >>>>> > >>>>> > >>>>>> On Nov 20, 2015, at 11:24 AM, Nicholas Duane <nic...@msn.com> wrote: > >>>>>> > >>>>>> That's what we're doing. The appender it writing to a logger and via > >>>>>> the configuration we have that going to this http endpoint. We're > >>>>>> careful to ensure that the events raised by our appender don't come > >>>>>> back to itself. > >>>>>> > >>>>>> Thanks, > >>>>>> Nick > >>>>>> > >>>>>>> Subject: Re: StatusLogger > >>>>>>> From: ralph.go...@dslextreme.com > >>>>>>> Date: Fri, 20 Nov 2015 11:04:57 -0700 > >>>>>>> To: log4j-user@logging.apache.org > >>>>>>> > >>>>>>> You can also use a normal logger in your appender for stuff that will > >>>>>>> happen at runtime. You just have to be aware that if you have things > >>>>>>> configured incorrectly that may result in a loop - at which point > >>>>>>> Log4j will detect it and ignore those logging events. > >>>>>>> > >>>>>>> Ralph > >>>>>>> > >>>>>>>> On Nov 20, 2015, at 10:55 AM, Nicholas Duane <nic...@msn.com> wrote: > >>>>>>>> > >>>>>>>> We're attempting to capture error, or info, events that our plugins > >>>>>>>> raise. For instance, we wrote a domain sockets appender. If that > >>>>>>>> domain sockets appender has trouble connecting to the domain socket > >>>>>>>> we'd like to know about it. In addition, we'd like to know about it > >>>>>>>> centrally so that we don't have to monitor each of the boxes our > >>>>>>>> code is running on. We therefore have a "logging" appender which > >>>>>>>> writes to an http endpoint. The log messages our plugins emit will > >>>>>>>> get forwarded to this logging appender (via the configuration) in > >>>>>>>> hopes to get these issues to a central location. Of course if the > >>>>>>>> http appender has trouble communicating with the http endpoint > >>>>>>>> there's not much we can report on that, though I guess we could > >>>>>>>> write to the StatusLogger at that point. > >>>>>>>> > >>>>>>>> I hope I explained it well enough so that you understand what it is > >>>>>>>> we're trying to do. > >>>>>>>> > >>>>>>>> Thanks, > >>>>>>>> Nick > >>>>>>>> > >>>>>>>>> Subject: Re: StatusLogger > >>>>>>>>> From: ralph.go...@dslextreme.com > >>>>>>>>> Date: Fri, 20 Nov 2015 10:16:17 -0700 > >>>>>>>>> To: log4j-user@logging.apache.org > >>>>>>>>> > >>>>>>>>> What do you mean by “capture the events from our appenders”? The > >>>>>>>>> StatusLogger is primarily used during configuration or to log > >>>>>>>>> errors that occur in the appender. If you are trying to capture the > >>>>>>>>> events being logged that sounds a bit odd as that is the purpose of > >>>>>>>>> an appender. > >>>>>>>>> > >>>>>>>>> If you want to capture all the Log4j status logger output you can > >>>>>>>>> specify a destination on the configuration element. The output will > >>>>>>>>> then be written to that location instead of to stdout. > >>>>>>>>> > >>>>>>>>> Ralph > >>>>>>>>> > >>>>>>>>>> On Nov 20, 2015, at 8:01 AM, Nicholas Duane <nic...@msn.com> wrote: > >>>>>>>>>> > >>>>>>>>>> The code happens to be a log4j2 appender, so it sounds like you're > >>>>>>>>>> saying we should be using the StatusLogger, correct? The issue is > >>>>>>>>>> that we want to capture the events from our appenders to a central > >>>>>>>>>> location. > >>>>>>>>>> > >>>>>>>>>> Thanks, > >>>>>>>>>> Nick > >>>>>>>>>> > >>>>>>>>>>> Subject: Re: StatusLogger > >>>>>>>>>>> From: ralph.go...@dslextreme.com > >>>>>>>>>>> Date: Thu, 19 Nov 2015 19:01:45 -0700 > >>>>>>>>>>> To: log4j-user@logging.apache.org > >>>>>>>>>>> > >>>>>>>>>>> Yes, the StatusLogger is how Log4j logs things that happen within > >>>>>>>>>>> Log4j itself. If you are writing plugins for Log4j those should > >>>>>>>>>>> also use the StatusLogger as they effectively become part of > >>>>>>>>>>> Log4j. If the are regular application code then they should not > >>>>>>>>>>> use the StatusLogger. > >>>>>>>>>>> > >>>>>>>>>>> Although the StatusLogger uses the same API as the Log4j API its > >>>>>>>>>>> implementation is quite different and much more limited in what > >>>>>>>>>>> can be done with the output. > >>>>>>>>>>> > >>>>>>>>>>> The StatusLogger implementation doesn’t have Appenders. Instead > >>>>>>>>>>> it has StatusListeners that receive the events. The only > >>>>>>>>>>> listeners provided with Log4j are the StatusConsoleListener, > >>>>>>>>>>> which writes events to stdout or a PrintStream, and > >>>>>>>>>>> StatusLoggerAdmin, which makes events available over JMX. > >>>>>>>>>>> > >>>>>>>>>>> Ralph > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>>> On Nov 19, 2015, at 6:33 PM, Nicholas Duane <nic...@msn.com> > >>>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> I'm trying to get information on the StatusLogger. I've > >>>>>>>>>>>> searched and so far the log4j docs say: > >>>>>>>>>>>> > >>>>>>>>>>>> "Records events that occur in the logging system." > >>>>>>>>>>>> > >>>>>>>>>>>> There are also a bunch of articles related to people having > >>>>>>>>>>>> problems with the StatusLogger. I'm just looking to find out > >>>>>>>>>>>> what it is. It appears it's somewhat of an "internal" logger > >>>>>>>>>>>> that log4j (log4j2) uses to log internal events. One reason I'm > >>>>>>>>>>>> looking into this is because I see some code in one of our > >>>>>>>>>>>> projects in which the class is logging to the StatusLogger. I > >>>>>>>>>>>> assume we shouldn't be doing this. > >>>>>>>>>>>> > >>>>>>>>>>>> Is the StatusLogger used in log4j2? In one post I read that the > >>>>>>>>>>>> "status" attribute controls the level. Can I set the appender > >>>>>>>>>>>> for the StatusLogger? > >>>>>>>>>>>> > >>>>>>>>>>>> Thanks, > >>>>>>>>>>>> Nick > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> --------------------------------------------------------------------- > >>>>>>>>>>> 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 > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> --------------------------------------------------------------------- > >>>>>>> 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 > >>>>> > >>>> > >>> > >>> > >>> > >>> --------------------------------------------------------------------- > >>> 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 > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org >