logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Schall" <mike.sch...@gmail.com>
Subject Re: custom fields?
Date Thu, 02 Oct 2008 18:39:23 GMT
Take a look at the documentation around contexts and how they override each
other...  Hopefully this will give you want you want...
http://logging.apache.org/log4net/release/manual/contexts.html

We use both the GlobalContext and the ThreadContext and they work great.

Mike

On Thu, Oct 2, 2008 at 1:31 PM, Bill McCormick <wpmccormick@gmail.com>wrote:

> Thanks, so much Francine!!
>
> If I understand correctly, once the GC property is set, it would stay set
> for every logged message thereafter? It would actually be better if it would
> be reset, since I would need (potentially) new values with each new logged
> message.
>
> Thanks,
>
>
> Bill
>
> On Thu, Oct 2, 2008 at 12:01 PM, Francine Taylor <
> Francine.Taylor@genesis-fs.com> wrote:
>
>>  Sure.  Here's how you can create a custom dynamic field:
>>
>>
>>
>> Put this in your application's log4net setup:
>>
>>
>>
>> // This is a way of creating a dynamic property (found in
>> ActiveProperties.cs)
>>
>> // To use it, put a reference to the property in the appender's property:
>> %property{custom1}
>>
>> // It isn't actually used for anything right now, but I wanted it left in
>> as an example
>>
>> log4net.GlobalContext.Properties["custom1"] = new Custom1();
>>
>> log4net.GlobalContext.Properties["custom2"] = new Custom2();
>>
>> log4net.GlobalContext.Properties["custom2"] = new Custom3();
>>
>>
>>
>> And then add this class to your project:
>>
>>
>>
>> // You can use this class to create an active property to be used in the
>> log4net configuration
>>
>> //
>>
>> // In your application setup routine you would create the property:
>>
>> //     log4net.GlobalContext.Properties["sampler"] = new SampleProperty();
>>
>> //
>>
>> // Then in the log4net.xml file, a pattern might contain this reference:
>> %property{sampler}
>>
>> //
>>
>> using System;
>>
>> using System.Collections.Generic;
>>
>> using System.Text;
>>
>>
>>
>> namespace Genesis.Logging {
>>
>>     public static class ActiveProperties {
>>
>>         public static string custom1 = "custom1 value";
>>
>>         public static string custom2 = "custom2 value";
>>
>>         public static string custom3 = "custom3 value";
>>
>>     }
>>
>>
>>
>>     public class Custom1 {
>>
>>         public override string ToString() {
>>
>>             return ActiveProperties.custom1;
>>
>>         }
>>
>>     }
>>
>>     public class Custom2 {
>>
>>         public override string ToString() {
>>
>>             return ActiveProperties.custom2;
>>
>>         }
>>
>>     }
>>
>>
>>
>>     public class Custom3 {
>>
>>         public override string ToString() {
>>
>>             return ActiveProperties.custom3;
>>
>>         }
>>
>>     }
>>
>>
>>
>> }
>>
>>
>>
>> Then, in your InfoFormat method, just set the sampleProperty to whatever
>> you passed in, just before you log the error.
>>
>>
>>  ------------------------------
>>
>> *From:* Bill McCormick [mailto:wpmccormick@gmail.com]
>> *Sent:* Thursday, October 02, 2008 9:39 AM
>> *To:* log4net-user
>> *Subject:* custom fields?
>>
>>
>>
>> Hello,
>>
>>
>> Is it possible to add custom fields to log4net. I'd like to be able to do
>> something like this:
>>
>> log.InfoFormat("Custom1", "Custom2", "Custom3", "{0}","Message");
>>
>> and then have an appender look something like:
>>
>> <layout type="log4net.Layout.
>>
>> PatternLayout">
>>   <conversionPattern value="%custom1 %custom2 %custom3 %message%newline"
>> />
>> </layout>
>>
>>
>> Thanks,
>>
>> Bill
>>
>> =============================================
>> NOTICE: The contents of this e-mail message and any attachments are
>> intended solely for the addressee(s) named in this message. This
>> communication is intended to be and to remain confidential. If you are not
>> the intended recipient of this message, or if this message has been
>> addressed to you in error, please immediately alert the sender by reply
>> e-mail and then delete this message and its attachments. Do not deliver,
>> distribute or copy this message and/or any attachments and if you are not
>> the intended recipient, do not disclose the contents or take any action in
>> reliance upon the information contained in this communication or any
>> attachments.
>> Thank you.
>>
>
>
>
>
>

Mime
View raw message