Howdy,
Why not use the Mapped Diagnostic Context (MDC) to hold your event identifier and 
message code?  Then include %X{messageCode} and %X{eventIdentifier} in your pattern.  
You wouldn't have to override LoggingEvent nor PatternParser.

Yoav Shapira
Millennium ChemInformatics


>-----Original Message-----
>From: Lutz Michael [mailto:[EMAIL PROTECTED]]
>Sent: Tuesday, February 04, 2003 11:39 AM
>To: 'Log4J Users List'
>Subject: RE: "forcing" a logging call
>
>
>
>Ceki,
>
>One more thing, if I may.
>
>We have requirements to pass additional information into Logging on every
>log call, such as (a) a message code and (b) a unique event identifier, in
>addition to (c) the message.  Additionally, we're generating hostname and
>hostaddress via additional conversion characters.
>
>Thus, we extended LoggingEvent to carry around this additional information,
>and since Category determines what LoggingEvent type to pass down into
>Log4j
>(via callAppenders), we overrode forcedLog to pass our extended
>LoggingEvent.
>
>I basically stumbled on this approach at
>http://www.ingrid.org/jajakarta/log4j/jakarta-log4j-
>1.1.3/docs/deepExtension
>.html by Paul Glezen, I'm sure you're familiar with it.  His approach is
>slightly different, since he's passing information into the category
>factory, and we need to pass our additional information in on every log
>call.
>
>In total, we've overridden 5 classes - Logger, LoggerFactory, LoggingEvent,
>PatternLayout, and PatternParser.  We have a couple helper classes as well.
>
>Given this ... are we still in left field ... or is our general approach
>sound.
>
>Look forward to your response,
>Mike
>
>PS Sorry about taking up so much of your time on this, but it's important
>we
>do the right thing.
>
>
>
>
>-----Original Message-----
>From: Ceki Gülcü [mailto:[EMAIL PROTECTED]]
>Sent: Tuesday, February 04, 2003 11:10 AM
>To: Log4J Users List
>Subject: RE: "forcing" a logging call
>
>
>At 09:55 04.02.2003 -0500, Lutz Michael wrote:
>
>>Ceki,
>>
>>You rock!  That worked.
>
>Somewhat exaggerated qualification but thanks.
>
>>So, basically what we did was:
>>
>>1) Extend Logger, because we needed to add a public "force(Object
>message)"
>>routine to call "callAppenders" directly.
>>2) Extend LoggerFactory, to return our own Logger.
>>3) We then casted the Logger returned by the Factory to our own extended
>>Logger type.  We needed to do this because the base Logger doesn't know
>>about our new "force" method.
>>
>>Does this sound correct to you, or is this over-complicated?
>
>Note the implementation of forcedLog:
>
>  protected void forcedLog(String fqcn, Priority level, Object message,
>Throwable t) {
>     callAppenders(new LoggingEvent(fqcn, this, level, message, t));
>   }
>
>Instead of sub classing Logger which is usually a very bad idea on the long
>term, I'd wrap Logger as explained the complete manual (which you already
>have). Oh, although forcedLog() is protected callAppenders() is public!
>
>>Thanks again for your help!
>>
>>Mike
>>
>>
>>-----Original Message-----
>>From: Ceki Gülcü [mailto:[EMAIL PROTECTED]]
>>Sent: Tuesday, February 04, 2003 4:09 AM
>>To: Log4J Users List
>>Subject: Re: "forcing" a logging call
>>
>>
>>Mike,
>>
>>See the Category.forcedLog and and Category.callAppenders methods. Have a
>>look at the source code as well.
>>
>>At 00:10 04.02.2003 -0500, Lutz Michael wrote:
>>
>>
>> >Is there a way to force a logging call to go through, regardless of what
>> >level is set?
>> >If I have to extend classes to achieve this, I'll do it.
>> >I'm having trouble finding a way to do this.
>> >
>> >Thanks in advance.
>> >
>> >Mike
>> >
>>
>>--------------------------------------------------------------------------
>-
>>----
>> >This message and any included attachments are from Siemens Medical
>>Solutions
>> >Health Services Corporation and are intended only for the addressee(s).
>> >The information contained herein may include trade secrets or privileged
>or
>> >otherwise confidential information.  Unauthorized review, forwarding,
>> >printing,
>> >copying, distributing, or using such information is strictly prohibited
>> >and may
>> >be unlawful.  If you received this message in error, or have reason to
>> >believe
>> >you are not authorized to receive it, please promptly delete this
>message
>>and
>> >notify the sender by e-mail with a copy to [EMAIL PROTECTED]  Thank you
>> >
>> >---------------------------------------------------------------------
>> >To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>--
>>Ceki
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>--------------------------------------------------------------------------
>-
>----
>>This message and any included attachments are from Siemens Medical
>Solutions
>>Health Services Corporation and are intended only for the addressee(s).
>>The information contained herein may include trade secrets or privileged
>or
>>otherwise confidential information.  Unauthorized review, forwarding,
>>printing,
>>copying, distributing, or using such information is strictly prohibited
>>and may
>>be unlawful.  If you received this message in error, or have reason to
>>believe
>>you are not authorized to receive it, please promptly delete this message
>and
>>notify the sender by e-mail with a copy to [EMAIL PROTECTED]  Thank you
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>
>--
>Ceki
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>---------------------------------------------------------------------------
>----
>This message and any included attachments are from Siemens Medical
>Solutions
>Health Services Corporation and are intended only for the addressee(s).
>The information contained herein may include trade secrets or privileged or
>otherwise confidential information.  Unauthorized review, forwarding,
>printing,
>copying, distributing, or using such information is strictly prohibited and
>may
>be unlawful.  If you received this message in error, or have reason to
>believe
>you are not authorized to receive it, please promptly delete this message
>and
>notify the sender by e-mail with a copy to [EMAIL PROTECTED]  Thank you
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to