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 Improvement
    • Status: Resolved
    • Priority: Minor 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; }

      }
      }

        Issue Links

          Activity

          Ron Grabowski created issue -
          Ron Grabowski made changes -
          Field Original Value New Value
          Link This issue incorporates LOG4NET-53 [ LOG4NET-53 ]
          Ron Grabowski made changes -
          Comment [ Property support was added to Hierarchy in LOG4NET-53. It may be possible to add a base class, ConfigPropertyPatternConverter, that collects <property> nodes and exposes them as a ConfigProperty dictionary.

          ]
          Ron Grabowski made changes -
          Assignee Ron Grabowski [ ron ]
          Ron Grabowski made changes -
          Resolution Fixed [ 1 ]
          Status Open [ 1 ] Resolved [ 5 ]
          Fix Version/s 1.2.11 [ 12310980 ]

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development