Uploaded image for project: 'Log4net'
  1. Log4net
  2. LOG4NET-31

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

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.2.11
    • Component/s: None
    • Labels:
      None

      Description

      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; }

      }
      }

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ron Ron Grabowski
                Reporter:
                ron Ron Grabowski
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: