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

Ability to use global property to point to log4net configuration file

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.2.9
    • Fix Version/s: 1.2.10
    • Component/s: Core
    • Labels:
      None
    • Environment:
      Any

      Description

      The log4j tool has the ability to specify a system property to point to the logging configuration file. For instance, when starting a java program (such as tomcat), one can pass "-Dlog4j.configuration=http://mydomain/log4j.xml" as a command line parameter. Log4j checks to see whether this property is available and, if it is, uses the return value from the URL to configure categories and appenders.

      A similar mechanism in log4net would allow a few improvements in logging configuring:

      • No need to use the XmlConfiguratorAttribute in any assemblies
      • No need to know at design time where the log4net config file will be located
      • Ability to configure logging for all components in an app domain by setting a property in the app domain's config file
      • Ability to configure logging for all components on a machine by setting a property in the machine.config file
      • Ability to updating config file contents without updating app or machine config contents.

      I'd propose doing a direct mirror of the log4j capabilities into log4net as follows:

      • Update the LogManager class with a static constructor that mirrors the static block in the LogManager class in log4j
      • Use System.Configuration.ConfigurationSettings.AppSettings.Get(...) instead of java's System.getProperty(...)
      • Don't support the configuratorClass attribute (yet) because the XmlConfigurator seems to be the only logical choice
      • Don't implement the DEFAULT_XML_CONFIGURATION_FILE or DEFAULT_CONFIGURATION_FILE property checks (yet).

        Attachments

        1. configuration.xml.diff.txt
          29 kB
          patrick conant
        2. DefaultRepositorySelector.cs.diff.txt
          5 kB
          patrick conant
        3. LogManager.cs.diff.txt
          3 kB
          patrick conant

          Activity

            People

            • Assignee:
              nicko Nicko Cadell
              Reporter:
              patrick_conant patrick conant
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: