In log4net 1.2.9 you can add additional patterns to the PatternLayout in
the config file:

For example you could define a custom pattern that looks up a user's
SpecialFolder:

<layout type="log4net.Layout.PatternLayout">
  <converter>
    <name value="folder" />
    <type
value="TestConsoleApp.SpecialFolderPatternConverter,TestConsoleApp" />
  </converter>
  <conversionPattern>%folder{MyMusic}-
%message%newline</conversionPattern>
</layout> 

The code for the custom converter is:

public class SpecialFolderPatternConverter :
log4net.Util.PatternConverter 
{
  override protected void Convert(System.IO.TextWriter writer, object
state) 
  {
    Environment.SpecialFolder specialFolder =
(Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder),
base.Option, true);
    writer.Write(Environment.GetFolderPath(specialFolder));
  }
}

If you want to create a subclass of PatternLayout you can add converters
directly by calling the AddConverter method from your subclass
constructor.

Cheers,

Nicko

> -----Original Message-----
> From: Scott Wojan [mailto:[EMAIL PROTECTED] 
> Sent: 21 June 2005 21:08
> To: [email protected]
> Subject: FinalizeConverter in log4net.helpers.PatternParser
> 
> The method: 
>   protected void FinalizeConverter(char c) on line 237 of 
> ..\src\helpers\PatternParser.cs is not marked as "virtual" so 
> we can't create custom log formats.
> 
> Version - 1.2.0 beta 8
> 
> Thanks,
> Scott Wojan
> ++++++CONFIDENTIALITY NOTICE++++++
> The information in this email may be confidential and/or 
> privileged. This email is intended to be reviewed by only the 
> individual or organization named above. If you are not the 
> intended recipient or an authorized representative of the 
> intended recipient, you are hereby notified that any review, 
> dissemination or copying of this email and its attachments, 
> if any, or the information contained herein is prohibited. If 
> you have received this email in error, please immediately 
> notify the sender by return email and delete this email from 
> your system.
> 

Reply via email to