Allow user to pass in additional parameters to <converter> node via some kind 
of <property> tag
-----------------------------------------------------------------------------------------------

         Key: LOG4NET-31
         URL: http://issues.apache.org/jira/browse/LOG4NET-31
     Project: Log4net
        Type: Improvement
    Reporter: Ron Grabowski
    Priority: Minor


It would be useful if the user was able to supply additional properties to the 
<convert> tag in the form of:

 <property name="foo" value="bar" />
 <property name="Hello" value="World" />

The code below uses a <property> node to determine if the HomeAddress or the 
WorkAddress will appear in the log message. If the parameter is not present, 
the converter prints a default value.

 <converter>
  <name value="user-converter" />
  <type value="Company.Project.Logging.UserConverter, Company.Project" />
  <property name="Address" value="HomeAddress" />
 </converter>
 <conversionPattern value="%p %d %user-converter{Nicko} - %m%n" />

The <property> tags would be accessible via a Properties IDictionary. It would 
allow the converter to perform additional logic on the base.Option that was 
passed in:

 public class MyConverter : PatternConverter
 {
  override protected void Convert(TextWriter writer, object state) 
  {
   User user = GetUserByUserName(base.Option);
   string address = base.Properties["Address"] as string;
   if (address != null && address.Length > 0)
   {
    if (user != null)
    {
     switch (address)
     {
      case "HomeAddress": writer.Write(user.HomeAddress); break;
      case "WorkAddress": writer.Write(user.WorkdAddress); break;
     }
    }
    else
    {
     // ???
    }
   }
   else
   {
    // default display
    writer.Write(user.HomeAddress); break;   
   }
  }
 }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to