nicko       2004/01/28 12:03:04

  Added:       extensions nant.build nant.config
               extensions/net nant.build nant.config
               extensions/net/1.0 .cvsignore cs-extensions.sln nant.build
                        nant.config
               extensions/net/1.0/log4net.Ext.EventID nant.build
                        nant.config
               extensions/net/1.0/log4net.Ext.EventID/cs .cvsignore
                        nant.build nant.config
               extensions/net/1.0/log4net.Ext.EventID/cs/src .cvsignore
                        AssemblyInfo.cs EventIDLogImpl.cs
                        EventIDLogManager.cs IEventIDLog.cs
                        log4net.Ext.EventID.csproj
               extensions/net/1.0/log4net.Ext.Trace nant.build nant.config
               extensions/net/1.0/log4net.Ext.Trace/cs .cvsignore
                        nant.build nant.config
               extensions/net/1.0/log4net.Ext.Trace/cs/src .cvsignore
                        AssemblyInfo.cs ITraceLog.cs TraceLogImpl.cs
                        TraceLogManager.cs log4net.Ext.Trace.csproj
  Log:
  Initial checkin
  
  Revision  Changes    Path
  1.1                  logging-log4net/extensions/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="extensions" default="compile" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <target name="compile" description="Builds extensions">
          <nant buildfile="net/nant.build" target="compile" />
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/extensions/nant.config
  
  Index: nant.config
  ===================================================================
  <?xml version="1.0" ?>
  <project name="extensions-configuration" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Set build configuration -->
      <property name="project.build.config" value="debug" readonly="false" />
  </project>
  
  
  
  1.1                  logging-log4net/extensions/net/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="net-extensions" default="compile" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- compile .NET Framework extensions -->
      <target name="compile" description="Builds .NET Framework extensions">
          <nant buildfile="1.0/nant.build" target="compile" />
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/extensions/net/nant.config
  
  Index: nant.config
  ===================================================================
  <?xml version="1.0" ?>
  <project name="net-configuration" xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include parent configuration file -->
      <include buildfile="../nant.config" />
      <!-- Set runtime configuration -->
      <property name="project.runtime.config" value="net" readonly="false" />
  </project>
  
  
  
  1.1                  logging-log4net/extensions/net/1.0/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  cs-extensions.suo
  vb-extensions.suo
  
  
  
  
  1.1                  logging-log4net/extensions/net/1.0/cs-extensions.sln
  
  Index: cs-extensions.sln
  ===================================================================
  Microsoft Visual Studio Solution File, Format Version 7.00
  Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net.Ext.Trace", 
"log4net.Ext.Trace\cs\src\log4net.Ext.Trace.csproj", 
"{8C73DF1C-AB2B-4309-A3EC-1ED594239E15}"
  EndProject
  Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "log4net.Ext.EventID", 
"log4net.Ext.EventID\cs\src\log4net.Ext.EventID.csproj", 
"{CB985027-C009-4C0F-88C1-8CF11912EE4C}"
  EndProject
  Global
        GlobalSection(SolutionConfiguration) = preSolution
                ConfigName.0 = Debug
                ConfigName.1 = Release
                ConfigName.2 = ReleaseStrong
        EndGlobalSection
        GlobalSection(ProjectDependencies) = postSolution
        EndGlobalSection
        GlobalSection(ProjectConfiguration) = postSolution
                {8C73DF1C-AB2B-4309-A3EC-1ED594239E15}.Debug.ActiveCfg = 
Debug|.NET
                {8C73DF1C-AB2B-4309-A3EC-1ED594239E15}.Debug.Build.0 = 
Debug|.NET
                {8C73DF1C-AB2B-4309-A3EC-1ED594239E15}.Release.ActiveCfg = 
Release|.NET
                {8C73DF1C-AB2B-4309-A3EC-1ED594239E15}.Release.Build.0 = 
Release|.NET
                {8C73DF1C-AB2B-4309-A3EC-1ED594239E15}.ReleaseStrong.ActiveCfg 
= ReleaseStrong|.NET
                {8C73DF1C-AB2B-4309-A3EC-1ED594239E15}.ReleaseStrong.Build.0 = 
ReleaseStrong|.NET
                {CB985027-C009-4C0F-88C1-8CF11912EE4C}.Debug.ActiveCfg = 
Debug|.NET
                {CB985027-C009-4C0F-88C1-8CF11912EE4C}.Debug.Build.0 = 
Debug|.NET
                {CB985027-C009-4C0F-88C1-8CF11912EE4C}.Release.ActiveCfg = 
Release|.NET
                {CB985027-C009-4C0F-88C1-8CF11912EE4C}.Release.Build.0 = 
Release|.NET
                {CB985027-C009-4C0F-88C1-8CF11912EE4C}.ReleaseStrong.ActiveCfg 
= ReleaseStrong|.NET
                {CB985027-C009-4C0F-88C1-8CF11912EE4C}.ReleaseStrong.Build.0 = 
ReleaseStrong|.NET
        EndGlobalSection
        GlobalSection(ExtensibilityGlobals) = postSolution
        EndGlobalSection
        GlobalSection(ExtensibilityAddIns) = postSolution
        EndGlobalSection
  EndGlobal
  
  
  
  1.1                  logging-log4net/extensions/net/1.0/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="net-1.0-extensions" default="compile" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- include configuration file -->
      <include buildfile="nant.config" />
      <!-- compile all .NET Framework 1.0 extensions -->
      <target name="compile" description="Builds .NET Framework 1.0 extensions">
          <available type="Framework" 
resource="${project.runtime.config}-${project.runtime.version}"
              property="temp.framework.available" />
          <if propertytrue="temp.framework.available">
              <nant buildfile="log4net.Ext.EventID/nant.build" target="compile" 
/>
              <nant buildfile="log4net.Ext.Trace/nant.build" target="compile" />
          </if>
          <ifnot propertytrue="temp.framework.available">
              <if propertyexists="project.build.package" 
propertytrue="project.build.package">
                  <fail message="${project.runtime.description} is not 
available." />
              </if>
              <ifnot propertyexists="project.build.package" 
propertytrue="project.build.package">
                  <echo message="${project.runtime.description} is not 
available. Extensions skipped." />
              </ifnot>
          </ifnot>
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/extensions/net/1.0/nant.config
  
  Index: nant.config
  ===================================================================
  <?xml version="1.0" ?>
  <project name="configuration" xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include parent configuration file -->
      <include buildfile="../nant.config" />
      <!-- Set runtime version -->
      <property name="project.runtime.version" value="1.0" readonly="false" />
      <!-- Set runtime description -->
      <property name="project.runtime.description" value=".NET Framework 1.0" 
readonly="false" />
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="eventid-extension" default="compile" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- compile EventID extension -->
      <target name="compile" description="Builds EventID extension">
          <nant buildfile="cs/nant.build" target="compile" />
      </target>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/nant.config
  
  Index: nant.config
  ===================================================================
  <?xml version="1.0" ?>
  <project name="configuration" xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include parent configuration file -->
      <include buildfile="../nant.config" />
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  doc
  build
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="log4net-samples" default="compile" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include configuration file -->
      <include buildfile="nant.config" />
      <!-- Include log4net helpers -->
      <include buildfile="${log4net.basedir}/log4net.include" />
      <!-- Targets that should always be executed -->
      <call target="set-build-configuration" />
      <call 
target="set-${project.runtime.config}-${project.runtime.version}-runtime-configuration"
 />
      <!-- Target for compiling the example -->
      <target name="compile" description="Builds the example" 
depends="check-current-bin-dir, clean-current-bin-dir, 
check-current-build-defines, check-current-build-config, 
check-current-build-debug, check-current-runtime-config, 
check-current-runtime-version, check-log4net-assembly">
          <!-- make sure the log4net key file is available to the compiler in a 
release build -->
          <if propertytrue="current.build.config.release">
              <!-- check if the log4net key file is available -->
              <available type="File" resource="${log4net.basedir}/log4net.snk" 
property="temp.log4net.keyfile.available" />
              <ifnot propertytrue="temp.log4net.keyfile.available">
                  <echo message="Key file not found. You can generate a key 
file by running 'sn -k log4net.snk'." />
                  <echo message="The generated key file should be stored in the 
log4net base directory." />
                  <fail message="The release build could not be built." />
              </ifnot>
              <if propertytrue="temp.log4net.keyfile.available">
                  <!-- copy the log4net key file to the location where the 
compiler expects it to be -->
                  <copy file="${log4net.basedir}/log4net.snk" 
todir="${current.bin.dir}/../../../../" />
              </if>
          </if>
          <!-- compile the example -->
          <csc noconfig="true" target="library" warnaserror="true" 
debug="${current.build.debug}"
              define="${current.build.defines.csc}" 
output="${current.bin.dir}/log4net.Ext.EventID.dll">
              <sources defaultexcludes="true">
                  <includes name="src/**/*.cs" />
                  <includes 
name="${log4net.basedir}/src/AssemblyVersionInfo.cs" />
              </sources>
              <references defaultexcludes="true">
                  <includes 
name="${log4net.basedir}/${current.bin.dir}/log4net.dll" frompath="false" />
              </references>
          </csc>
      </target>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/nant.config
  
  Index: nant.config
  ===================================================================
  <?xml version="1.0" ?>
  <project name="configuration" xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include parent configuration file -->
      <include buildfile="../nant.config" />
      <!-- Set log4net base directory -->
      <property name="log4net.basedir" value="../../../../../" readonly="false" 
/>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/src/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  obj
  log4net.xml
  log4net.Ext.EventID.csproj.user
  log4net.Ext.EventID.suo
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/src/AssemblyInfo.cs
  
  Index: AssemblyInfo.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  using System.Reflection;
  using System.Runtime.CompilerServices;
  
  //
  // General Information about an assembly is controlled through the following 
  // set of attributes. Change these attribute values to modify the information
  // associated with an assembly.
  //
  [assembly: AssemblyTitle("log4net.Ext.EventID")]
  [assembly: AssemblyDescription("log4net EventID Extension")]
  [assembly: AssemblyConfiguration("")]
  [assembly: AssemblyCompany("Neoworks Limited")]
  [assembly: AssemblyProduct("log4net.Ext.EventID")]
  [assembly: AssemblyCopyright("Copyright (C) 2001-2003 Neoworks Limited. All 
Rights Reserved.")]
  [assembly: AssemblyTrademark("Copyright (C) 2001-2003 Neoworks Limited. All 
Rights Reserved.")]
  [assembly: AssemblyCulture("")]               
  
  //
  // In order to sign your assembly you must specify a key to use. Refer to the 
  // Microsoft .NET Framework documentation for more information on assembly 
signing.
  //
  // Use the attributes below to control which key is used for signing. 
  //
  // Notes: 
  //   (*) If no key is specified, the assembly is not signed.
  //   (*) KeyName refers to a key that has been installed in the Crypto Service
  //       Provider (CSP) on your machine. KeyFile refers to a file which 
contains
  //       a key.
  //   (*) If the KeyFile and the KeyName values are both specified, the 
  //       following processing occurs:
  //       (1) If the KeyName can be found in the CSP, that key is used.
  //       (2) If the KeyName does not exist and the KeyFile does exist, the 
key 
  //           in the KeyFile is installed into the CSP and used.
  //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) 
utility.
  //       When specifying the KeyFile, the location of the KeyFile should be
  //       relative to the project output directory which is
  //       %Project Directory%\obj\<configuration>. For example, if your 
KeyFile is
  //       located in the project directory, you would specify the 
AssemblyKeyFile 
  //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
  //   (*) Delay Signing is an advanced option - see the Microsoft .NET 
Framework
  //       documentation for more information on this.
  //
  #if STRONG
  [assembly: AssemblyDelaySign(false)]
  [assembly: AssemblyKeyFile(@"..\..\..\..\log4net.snk")]
  [assembly: AssemblyKeyName("")]
  #endif
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogImpl.cs
  
  Index: EventIDLogImpl.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  using log4net.Core;
  
  namespace log4net.Ext.EventID
  {
        public class EventIDLogImpl : LogImpl, IEventIDLog
        {
                #region Public Instance Constructors
  
                public EventIDLogImpl(ILogger logger) : base(logger)
                {
                }
  
                #endregion Public Instance Constructors
  
                #region Implementation of IEventIDLog
  
                public void Info(int eventId, object message)
                {
                        Info(eventId, message, null);
                }
  
                public void Info(int eventId, object message, System.Exception 
t)
                {
                        if (this.IsInfoEnabled)
                        {
                                LoggingEvent loggingEvent = new 
LoggingEvent(FullName, Logger.Repository, Logger.Name, Level.Info, message, t);
                                loggingEvent.Properties["EventID"] = eventId;
                                Logger.Log(loggingEvent);
                        }
                }
  
                public void Warn(int eventId, object message)
                {
                        Warn(eventId, message, null);
                }
  
                public void Warn(int eventId, object message, System.Exception 
t)
                {
                        if (this.IsWarnEnabled)
                        {
                                LoggingEvent loggingEvent = new 
LoggingEvent(FullName, Logger.Repository, Logger.Name, Level.Info, message, t);
                                loggingEvent.Properties["EventID"] = eventId;
                                Logger.Log(loggingEvent);
                        }
                }
  
                public void Error(int eventId, object message)
                {
                        Error(eventId, message, null);
                }
  
                public void Error(int eventId, object message, System.Exception 
t)
                {
                        if (this.IsErrorEnabled)
                        {
                                LoggingEvent loggingEvent = new 
LoggingEvent(this.FullName, Logger.Repository, Logger.Name, Level.Info, 
message, t);
                                loggingEvent.Properties["EventID"] = eventId;
                                Logger.Log(loggingEvent);
                        }
                }
  
                public void Fatal(int eventId, object message)
                {
                        Fatal(eventId, message, null);
                }
  
                public void Fatal(int eventId, object message, System.Exception 
t)
                {
                        if (this.IsFatalEnabled)
                        {
                                LoggingEvent loggingEvent = new 
LoggingEvent(this.FullName, Logger.Repository, Logger.Name, Level.Info, 
message, t);
                                loggingEvent.Properties["EventID"] = eventId;
                                Logger.Log(loggingEvent);
                        }
                }
  
                #endregion Implementation of IEventIDLog
        }
  }
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/src/EventIDLogManager.cs
  
  Index: EventIDLogManager.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  using System;
  using System.Reflection;
  using System.Collections;
  
  using log4net;
  using log4net.Core;
  using log4net.Repository;
  using log4net.Repository.Hierarchy;
  
  /*
   * Custom Logging Classes to support Event IDs.
   */
  namespace log4net.Ext.EventID
  {
        public class EventIDLogManager
        {
                #region Static Member Variables
  
                /// <summary>
                /// The wrapper map to use to hold the <see 
cref="EventIDLogImpl"/> objects
                /// </summary>
                private static readonly WrapperMap s_wrapperMap = new 
WrapperMap(new WrapperCreationHandler(WrapperCreationHandler));
  
                #endregion
  
                #region Constructor
  
                /// <summary>
                /// Private constructor to prevent object creation
                /// </summary>
                private EventIDLogManager() { }
  
                #endregion
  
                #region Type Specific Manager Methods
  
                /// <summary>
                /// Returns the named logger if it exists
                /// </summary>
                /// <remarks>
                /// <para>If the named logger exists (in the default hierarchy) 
then it
                /// returns a reference to the logger, otherwise it returns
                /// <c>null</c>.</para>
                /// </remarks>
                /// <param name="name">The fully qualified logger name to look 
for</param>
                /// <returns>The logger found, or null</returns>
                public static IEventIDLog Exists(string name) 
                {
                        return Exists(Assembly.GetCallingAssembly(), name);
                }
  
                /// <summary>
                /// Returns the named logger if it exists
                /// </summary>
                /// <remarks>
                /// <para>If the named logger exists (in the specified domain) 
then it
                /// returns a reference to the logger, otherwise it returns
                /// <c>null</c>.</para>
                /// </remarks>
                /// <param name="domain">the domain to lookup in</param>
                /// <param name="name">The fully qualified logger name to look 
for</param>
                /// <returns>The logger found, or null</returns>
                public static IEventIDLog Exists(string domain, string name) 
                {
                        return WrapLogger(LoggerManager.Exists(domain, name));
                }
  
                /// <summary>
                /// Returns the named logger if it exists
                /// </summary>
                /// <remarks>
                /// <para>If the named logger exists (in the specified 
assembly's domain) then it
                /// returns a reference to the logger, otherwise it returns
                /// <c>null</c>.</para>
                /// </remarks>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <param name="name">The fully qualified logger name to look 
for</param>
                /// <returns>The logger found, or null</returns>
                public static IEventIDLog Exists(Assembly assembly, string 
name) 
                {
                        return WrapLogger(LoggerManager.Exists(assembly, name));
                }
  
                /// <summary>
                /// Returns all the currently defined loggers in the default 
domain.
                /// </summary>
                /// <remarks>
                /// <para>The root logger is <b>not</b> included in the 
returned array.</para>
                /// </remarks>
                /// <returns>All the defined loggers</returns>
                public static IEventIDLog[] GetCurrentLoggers()
                {
                        return GetCurrentLoggers(Assembly.GetCallingAssembly());
                }
  
                /// <summary>
                /// Returns all the currently defined loggers in the specified 
domain.
                /// </summary>
                /// <param name="domain">the domain to lookup in</param>
                /// <remarks>
                /// The root logger is <b>not</b> included in the returned 
array.
                /// </remarks>
                /// <returns>All the defined loggers</returns>
                public static IEventIDLog[] GetCurrentLoggers(string domain)
                {
                        return 
WrapLoggers(LoggerManager.GetCurrentLoggers(domain));
                }
  
                /// <summary>
                /// Returns all the currently defined loggers in the specified 
assembly's domain.
                /// </summary>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <remarks>
                /// The root logger is <b>not</b> included in the returned 
array.
                /// </remarks>
                /// <returns>All the defined loggers</returns>
                public static IEventIDLog[] GetCurrentLoggers(Assembly assembly)
                {
                        return 
WrapLoggers(LoggerManager.GetCurrentLoggers(assembly));
                }
  
                /// <summary>
                /// Retrieve or create a named logger.
                /// </summary>
                /// <remarks>
                /// <para>Retrieve a logger named as the <paramref name="name"/>
                /// parameter. If the named logger already exists, then the
                /// existing instance will be returned. Otherwise, a new 
instance is
                /// created.</para>
                /// 
                /// <para>By default, loggers do not have a set level but 
inherit
                /// it from the hierarchy. This is one of the central features 
of
                /// log4net.</para>
                /// </remarks>
                /// <param name="name">The name of the logger to 
retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static IEventIDLog GetLogger(string name)
                {
                        return GetLogger(Assembly.GetCallingAssembly(), name);
                }
  
                /// <summary>
                /// Retrieve or create a named logger.
                /// </summary>
                /// <remarks>
                /// <para>Retrieve a logger named as the <paramref name="name"/>
                /// parameter. If the named logger already exists, then the
                /// existing instance will be returned. Otherwise, a new 
instance is
                /// created.</para>
                /// 
                /// <para>By default, loggers do not have a set level but 
inherit
                /// it from the hierarchy. This is one of the central features 
of
                /// log4net.</para>
                /// </remarks>
                /// <param name="domain">the domain to lookup in</param>
                /// <param name="name">The name of the logger to 
retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static IEventIDLog GetLogger(string domain, string name)
                {
                        return WrapLogger(LoggerManager.GetLogger(domain, 
name));
                }
  
                /// <summary>
                /// Retrieve or create a named logger.
                /// </summary>
                /// <remarks>
                /// <para>Retrieve a logger named as the <paramref name="name"/>
                /// parameter. If the named logger already exists, then the
                /// existing instance will be returned. Otherwise, a new 
instance is
                /// created.</para>
                /// 
                /// <para>By default, loggers do not have a set level but 
inherit
                /// it from the hierarchy. This is one of the central features 
of
                /// log4net.</para>
                /// </remarks>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <param name="name">The name of the logger to 
retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static IEventIDLog GetLogger(Assembly assembly, string 
name)
                {
                        return WrapLogger(LoggerManager.GetLogger(assembly, 
name));
                }       
  
                /// <summary>
                /// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
                /// </summary>
                /// <remarks>
                /// Get the logger for the fully qualified name of the type 
specified.
                /// </remarks>
                /// <param name="type">The full name of <paramref name="type"/> 
will 
                /// be used as the name of the logger to retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static IEventIDLog GetLogger(Type type) 
                {
                        return GetLogger(Assembly.GetCallingAssembly(), 
type.FullName);
                }
  
                /// <summary>
                /// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
                /// </summary>
                /// <remarks>
                /// Get the logger for the fully qualified name of the type 
specified.
                /// </remarks>
                /// <param name="domain">the domain to lookup in</param>
                /// <param name="type">The full name of <paramref name="type"/> 
will 
                /// be used as the name of the logger to retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static IEventIDLog GetLogger(string domain, Type type) 
                {
                        return WrapLogger(LoggerManager.GetLogger(domain, 
type));
                }
  
                /// <summary>
                /// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
                /// </summary>
                /// <remarks>
                /// Get the logger for the fully qualified name of the type 
specified.
                /// </remarks>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <param name="type">The full name of <paramref name="type"/> 
will 
                /// be used as the name of the logger to retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static IEventIDLog GetLogger(Assembly assembly, Type 
type) 
                {
                        return WrapLogger(LoggerManager.GetLogger(assembly, 
type));
                }
  
                #endregion
  
                #region Extension Handlers
  
                /// <summary>
                /// Lookup the wrapper object for the logger specified
                /// </summary>
                /// <param name="logger">the logger to get the wrapper 
for</param>
                /// <returns>the wrapper for the logger specified</returns>
                public static IEventIDLog WrapLogger(ILogger logger)
                {
                        return (IEventIDLog)s_wrapperMap[logger];
                }
  
                /// <summary>
                /// Lookup the wrapper objects for the loggers specified
                /// </summary>
                /// <param name="loggers">the loggers to get the wrappers 
for</param>
                /// <returns>Lookup the wrapper objects for the loggers 
specified</returns>
                public static IEventIDLog[] WrapLoggers(ILogger[] loggers)
                {
                        IEventIDLog[] results = new IEventIDLog[loggers.Length];
                        for(int i=0; i<loggers.Length; i++)
                        {
                                results[i] = WrapLogger(loggers[i]);
                        }
                        return results;
                }
  
                /// <summary>
                /// Method to create the <see cref="ILoggerWrapper"/> objects 
used by
                /// this manager.
                /// </summary>
                /// <param name="logger">The logger to wrap</param>
                /// <returns>The wrapper for the logger specified</returns>
                private static ILoggerWrapper WrapperCreationHandler(ILogger 
logger)
                {
                        return new EventIDLogImpl(logger);
                }
  
                #endregion
        }
  }
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/src/IEventIDLog.cs
  
  Index: IEventIDLog.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  /*
   * Custom Logging Classes to support Event IDs.
   */
  
  namespace log4net.Ext.EventID
  {
        using System;
  
        public interface IEventIDLog : ILog
        {
                void Info(int eventId, object message);
                void Info(int eventId, object message, Exception t);
  
                void Warn(int eventId, object message);
                void Warn(int eventId, object message, Exception t);
  
                void Error(int eventId, object message);
                void Error(int eventId, object message, Exception t);
  
                void Fatal(int eventId, object message);
                void Fatal(int eventId, object message, Exception t);
        }
  }
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.EventID/cs/src/log4net.Ext.EventID.csproj
  
  Index: log4net.Ext.EventID.csproj
  ===================================================================
  <VisualStudioProject>
      <CSHARP
          ProjectType = "Local"
          ProductVersion = "7.0.9466"
          SchemaVersion = "1.0"
          ProjectGuid = "{CB985027-C009-4C0F-88C1-8CF11912EE4C}"
      >
          <Build>
              <Settings
                  ApplicationIcon = ""
                  AssemblyKeyContainerName = ""
                  AssemblyName = "log4net.Ext.EventID"
                  AssemblyOriginatorKeyFile = ""
                  DefaultClientScript = "JScript"
                  DefaultHTMLPageLayout = "Grid"
                  DefaultTargetSchema = "IE50"
                  DelaySign = "false"
                  OutputType = "Library"
                  PreBuildEvent = ""
                  PostBuildEvent = ""
                  RootNamespace = "log4net.Ext.EventID"
                  RunPostBuildEvent = "OnBuildSuccess"
                  StartupObject = ""
              >
                  <Config
                      Name = "Debug"
                      AllowUnsafeBlocks = "false"
                      BaseAddress = "285212672"
                      CheckForOverflowUnderflow = "false"
                      ConfigurationOverrideFile = ""
                      DefineConstants = "DEBUG;TRACE"
                      DocumentationFile = ""
                      DebugSymbols = "true"
                      FileAlignment = "4096"
                      IncrementalBuild = "true"
                      NoStdLib = "false"
                      NoWarn = ""
                      Optimize = "false"
                      OutputPath = "..\build\debug\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "4"
                  />
                  <Config
                      Name = "Release"
                      AllowUnsafeBlocks = "false"
                      BaseAddress = "285212672"
                      CheckForOverflowUnderflow = "false"
                      ConfigurationOverrideFile = ""
                      DefineConstants = "TRACE;STRONG"
                      DocumentationFile = ""
                      DebugSymbols = "false"
                      FileAlignment = "4096"
                      IncrementalBuild = "false"
                      NoStdLib = "false"
                      NoWarn = ""
                      Optimize = "true"
                      OutputPath = "..\build\release\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "4"
                  />
              </Settings>
              <References>
                  <Reference
                      Name = "System"
                      AssemblyName = "System"
                      HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.dll"
                  />
                  <Reference
                      Name = "System.Data"
                      AssemblyName = "System.Data"
                      HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Data.dll"
                  />
                  <Reference
                      Name = "System.XML"
                      AssemblyName = "System.Xml"
                      HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
                  />
                  <Reference
                      Name = "log4net"
                      AssemblyName = "log4net"
                      HintPath = 
"..\..\..\..\..\..\bin\net\1.0\release\log4net.dll"
                  />
              </References>
          </Build>
          <Files>
              <Include>
                  <File
                      RelPath = "AssemblyInfo.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "AssemblyVersionInfo.cs"
                      Link = "..\..\..\..\..\..\src\AssemblyVersionInfo.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "EventIDLogImpl.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "EventIDLogManager.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "IEventIDLog.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
              </Include>
          </Files>
      </CSHARP>
  </VisualStudioProject>
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="trace-extension" default="compile" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- compile Trace extension -->
      <target name="compile" description="Builds Trace extension">
          <nant buildfile="cs/nant.build" target="compile" />
      </target>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/nant.config
  
  Index: nant.config
  ===================================================================
  <?xml version="1.0" ?>
  <project name="configuration" xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include parent configuration file -->
      <include buildfile="../nant.config" />
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  doc
  build
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="log4net-samples" default="compile" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include configuration file -->
      <include buildfile="nant.config" />
      <!-- Include log4net helpers -->
      <include buildfile="${log4net.basedir}/log4net.include" />
      <!-- Targets that should always be executed -->
      <call target="set-build-configuration" />
      <call 
target="set-${project.runtime.config}-${project.runtime.version}-runtime-configuration"
 />
      <!-- Target for compiling the example -->
      <target name="compile" description="Builds the example" 
depends="check-current-bin-dir, clean-current-bin-dir, 
check-current-build-defines, check-current-build-config, 
check-current-build-debug, check-current-runtime-config, 
check-current-runtime-version, check-log4net-assembly">
          <!-- make sure the log4net key file is available to the compiler in a 
release build -->
          <if propertytrue="current.build.config.release">
              <!-- check if the log4net key file is available -->
              <available type="File" resource="${log4net.basedir}/log4net.snk" 
property="temp.log4net.keyfile.available" />
              <ifnot propertytrue="temp.log4net.keyfile.available">
                  <echo message="Key file not found. You can generate a key 
file by running 'sn -k log4net.snk'." />
                  <echo message="The generated key file should be stored in the 
log4net base directory." />
                  <fail message="The release build could not be built." />
              </ifnot>
              <if propertytrue="temp.log4net.keyfile.available">
                  <!-- copy the log4net key file to the location where the 
compiler expects it to be -->
                  <copy file="${log4net.basedir}/log4net.snk" 
todir="${current.bin.dir}/../../../../" />
              </if>
          </if>
          <!-- compile the example -->
          <csc noconfig="true" target="library" warnaserror="true" 
debug="${current.build.debug}"
              define="${current.build.defines.csc}" 
output="${current.bin.dir}/log4net.Ext.Trace.dll">
              <sources defaultexcludes="true">
                  <includes name="src/**/*.cs" />
                  <includes 
name="${log4net.basedir}/src/AssemblyVersionInfo.cs" />
              </sources>
              <references defaultexcludes="true">
                  <includes 
name="${log4net.basedir}/${current.bin.dir}/log4net.dll" frompath="false" />
              </references>
          </csc>
      </target>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/nant.config
  
  Index: nant.config
  ===================================================================
  <?xml version="1.0" ?>
  <project name="configuration" xmlnds="http://tempuri.org/nant-vs.xsd";>
      <!-- Include parent configuration file -->
      <include buildfile="../nant.config" />
      <!-- Set log4net base directory -->
      <property name="log4net.basedir" value="../../../../../" readonly="false" 
/>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/src/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  obj
  log4net.xml
  log4net.Ext.Trace.csproj.user
  log4net.Ext.Trace.suo
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/src/AssemblyInfo.cs
  
  Index: AssemblyInfo.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  using System.Reflection;
  using System.Runtime.CompilerServices;
  
  //
  // General Information about an assembly is controlled through the following 
  // set of attributes. Change these attribute values to modify the information
  // associated with an assembly.
  //
  [assembly: AssemblyTitle("log4net.Ext.Trace")]
  [assembly: AssemblyDescription("log4net Trace Extension")]
  [assembly: AssemblyConfiguration("")]
  [assembly: AssemblyCompany("Neoworks Limited")]
  [assembly: AssemblyProduct("log4net.Ext.Trace")]
  [assembly: AssemblyCopyright("Copyright (C) 2001-2003 Neoworks Limited. All 
Rights Reserved.")]
  [assembly: AssemblyTrademark("Copyright (C) 2001-2003 Neoworks Limited. All 
Rights Reserved.")]
  [assembly: AssemblyCulture("")]               
  
  //
  // In order to sign your assembly you must specify a key to use. Refer to the 
  // Microsoft .NET Framework documentation for more information on assembly 
signing.
  //
  // Use the attributes below to control which key is used for signing. 
  //
  // Notes: 
  //   (*) If no key is specified, the assembly is not signed.
  //   (*) KeyName refers to a key that has been installed in the Crypto Service
  //       Provider (CSP) on your machine. KeyFile refers to a file which 
contains
  //       a key.
  //   (*) If the KeyFile and the KeyName values are both specified, the 
  //       following processing occurs:
  //       (1) If the KeyName can be found in the CSP, that key is used.
  //       (2) If the KeyName does not exist and the KeyFile does exist, the 
key 
  //           in the KeyFile is installed into the CSP and used.
  //   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) 
utility.
  //       When specifying the KeyFile, the location of the KeyFile should be
  //       relative to the project output directory which is
  //       %Project Directory%\obj\<configuration>. For example, if your 
KeyFile is
  //       located in the project directory, you would specify the 
AssemblyKeyFile 
  //       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
  //   (*) Delay Signing is an advanced option - see the Microsoft .NET 
Framework
  //       documentation for more information on this.
  //
  #if STRONG
  [assembly: AssemblyDelaySign(false)]
  [assembly: AssemblyKeyFile(@"..\..\..\..\log4net.snk")]
  [assembly: AssemblyKeyName("")]
  #endif
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/src/ITraceLog.cs
  
  Index: ITraceLog.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  using System;
  
  namespace log4net.Ext.Trace
  {
        public interface ITraceLog : ILog
        {
                void Trace(object message);
                void Trace(object message, Exception t);
                bool IsTraceEnabled { get; }
        }
  }
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogImpl.cs
  
  Index: TraceLogImpl.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  using log4net.Core;
  
  namespace log4net.Ext.Trace
  {
        public class TraceLogImpl : LogImpl, ITraceLog
        {
                #region Public Instance Constructors
  
                public TraceLogImpl(ILogger logger) : base(logger)
                {
                }
  
                #endregion Public Instance Constructors
  
                #region Implementation of ITraceLog
  
                public void Trace(object message)
                {
                        Logger.Log(this.FullName, Level.Trace, message, null);
                }
  
                public void Trace(object message, System.Exception t)
                {
                        Logger.Log(this.FullName, Level.Trace, message, t);
                }
  
                public bool IsTraceEnabled
                {
                        get { return Logger.IsEnabledFor(Level.Trace); }
                }
  
                #endregion Implementation of ITraceLog
        }
  }
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/src/TraceLogManager.cs
  
  Index: TraceLogManager.cs
  ===================================================================
  #region Copyright
  // 
  // This framework is based on log4j see http://jakarta.apache.org/log4j
  // Copyright (C) The Apache Software Foundation. All rights reserved.
  //
  // This software is published under the terms of the Apache Software
  // License version 1.1, a copy of which has been included with this
  // distribution in the LICENSE.txt file.
  // 
  #endregion
  
  using System;
  using System.Reflection;
  using System.Collections;
  
  using log4net;
  using log4net.Core;
  using log4net.Repository;
  using log4net.Repository.Hierarchy;
  
  /*
   * Custom Logging Classes to support additional logging levels.
   */
  namespace log4net.Ext.Trace
  {
        public class TraceLogManager
        {
                #region Static Member Variables
  
                /// <summary>
                /// The wrapper map to use to hold the <see 
cref="TraceLogImpl"/> objects
                /// </summary>
                private static readonly WrapperMap s_wrapperMap = new 
WrapperMap(new WrapperCreationHandler(WrapperCreationHandler));
  
                #endregion
  
                #region Constructor
  
                /// <summary>
                /// Private constructor to prevent object creation
                /// </summary>
                private TraceLogManager() { }
  
                #endregion
  
                #region Type Specific Manager Methods
  
                /// <summary>
                /// Returns the named logger if it exists
                /// </summary>
                /// <remarks>
                /// <para>If the named logger exists (in the default hierarchy) 
then it
                /// returns a reference to the logger, otherwise it returns
                /// <c>null</c>.</para>
                /// </remarks>
                /// <param name="name">The fully qualified logger name to look 
for</param>
                /// <returns>The logger found, or null</returns>
                public static ITraceLog Exists(string name) 
                {
                        return Exists(Assembly.GetCallingAssembly(), name);
                }
  
                /// <summary>
                /// Returns the named logger if it exists
                /// </summary>
                /// <remarks>
                /// <para>If the named logger exists (in the specified domain) 
then it
                /// returns a reference to the logger, otherwise it returns
                /// <c>null</c>.</para>
                /// </remarks>
                /// <param name="domain">the domain to lookup in</param>
                /// <param name="name">The fully qualified logger name to look 
for</param>
                /// <returns>The logger found, or null</returns>
                public static ITraceLog Exists(string domain, string name) 
                {
                        return WrapLogger(LoggerManager.Exists(domain, name));
                }
  
                /// <summary>
                /// Returns the named logger if it exists
                /// </summary>
                /// <remarks>
                /// <para>If the named logger exists (in the specified 
assembly's domain) then it
                /// returns a reference to the logger, otherwise it returns
                /// <c>null</c>.</para>
                /// </remarks>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <param name="name">The fully qualified logger name to look 
for</param>
                /// <returns>The logger found, or null</returns>
                public static ITraceLog Exists(Assembly assembly, string name) 
                {
                        return WrapLogger(LoggerManager.Exists(assembly, name));
                }
  
                /// <summary>
                /// Returns all the currently defined loggers in the default 
domain.
                /// </summary>
                /// <remarks>
                /// <para>The root logger is <b>not</b> included in the 
returned array.</para>
                /// </remarks>
                /// <returns>All the defined loggers</returns>
                public static ITraceLog[] GetCurrentLoggers()
                {
                        return GetCurrentLoggers(Assembly.GetCallingAssembly());
                }
  
                /// <summary>
                /// Returns all the currently defined loggers in the specified 
domain.
                /// </summary>
                /// <param name="domain">the domain to lookup in</param>
                /// <remarks>
                /// The root logger is <b>not</b> included in the returned 
array.
                /// </remarks>
                /// <returns>All the defined loggers</returns>
                public static ITraceLog[] GetCurrentLoggers(string domain)
                {
                        return 
WrapLoggers(LoggerManager.GetCurrentLoggers(domain));
                }
  
                /// <summary>
                /// Returns all the currently defined loggers in the specified 
assembly's domain.
                /// </summary>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <remarks>
                /// The root logger is <b>not</b> included in the returned 
array.
                /// </remarks>
                /// <returns>All the defined loggers</returns>
                public static ITraceLog[] GetCurrentLoggers(Assembly assembly)
                {
                        return 
WrapLoggers(LoggerManager.GetCurrentLoggers(assembly));
                }
  
                /// <summary>
                /// Retrieve or create a named logger.
                /// </summary>
                /// <remarks>
                /// <para>Retrieve a logger named as the <paramref name="name"/>
                /// parameter. If the named logger already exists, then the
                /// existing instance will be returned. Otherwise, a new 
instance is
                /// created.</para>
                /// 
                /// <para>By default, loggers do not have a set level but 
inherit
                /// it from the hierarchy. This is one of the central features 
of
                /// log4net.</para>
                /// </remarks>
                /// <param name="name">The name of the logger to 
retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static ITraceLog GetLogger(string name)
                {
                        return GetLogger(Assembly.GetCallingAssembly(), name);
                }
  
                /// <summary>
                /// Retrieve or create a named logger.
                /// </summary>
                /// <remarks>
                /// <para>Retrieve a logger named as the <paramref name="name"/>
                /// parameter. If the named logger already exists, then the
                /// existing instance will be returned. Otherwise, a new 
instance is
                /// created.</para>
                /// 
                /// <para>By default, loggers do not have a set level but 
inherit
                /// it from the hierarchy. This is one of the central features 
of
                /// log4net.</para>
                /// </remarks>
                /// <param name="domain">the domain to lookup in</param>
                /// <param name="name">The name of the logger to 
retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static ITraceLog GetLogger(string domain, string name)
                {
                        return WrapLogger(LoggerManager.GetLogger(domain, 
name));
                }
  
                /// <summary>
                /// Retrieve or create a named logger.
                /// </summary>
                /// <remarks>
                /// <para>Retrieve a logger named as the <paramref name="name"/>
                /// parameter. If the named logger already exists, then the
                /// existing instance will be returned. Otherwise, a new 
instance is
                /// created.</para>
                /// 
                /// <para>By default, loggers do not have a set level but 
inherit
                /// it from the hierarchy. This is one of the central features 
of
                /// log4net.</para>
                /// </remarks>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <param name="name">The name of the logger to 
retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static ITraceLog GetLogger(Assembly assembly, string 
name)
                {
                        return WrapLogger(LoggerManager.GetLogger(assembly, 
name));
                }       
  
                /// <summary>
                /// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
                /// </summary>
                /// <remarks>
                /// Get the logger for the fully qualified name of the type 
specified.
                /// </remarks>
                /// <param name="type">The full name of <paramref name="type"/> 
will 
                /// be used as the name of the logger to retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static ITraceLog GetLogger(Type type) 
                {
                        return GetLogger(Assembly.GetCallingAssembly(), 
type.FullName);
                }
  
                /// <summary>
                /// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
                /// </summary>
                /// <remarks>
                /// Get the logger for the fully qualified name of the type 
specified.
                /// </remarks>
                /// <param name="domain">the domain to lookup in</param>
                /// <param name="type">The full name of <paramref name="type"/> 
will 
                /// be used as the name of the logger to retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static ITraceLog GetLogger(string domain, Type type) 
                {
                        return WrapLogger(LoggerManager.GetLogger(domain, 
type));
                }
  
                /// <summary>
                /// Shorthand for <see cref="LogManager.GetLogger(string)"/>.
                /// </summary>
                /// <remarks>
                /// Get the logger for the fully qualified name of the type 
specified.
                /// </remarks>
                /// <param name="assembly">the assembly to use to lookup the 
domain</param>
                /// <param name="type">The full name of <paramref name="type"/> 
will 
                /// be used as the name of the logger to retrieve.</param>
                /// <returns>the logger with the name specified</returns>
                public static ITraceLog GetLogger(Assembly assembly, Type type) 
                {
                        return WrapLogger(LoggerManager.GetLogger(assembly, 
type));
                }
  
                #endregion
  
                #region Extension Handlers
  
                /// <summary>
                /// Lookup the wrapper object for the logger specified
                /// </summary>
                /// <param name="logger">the logger to get the wrapper 
for</param>
                /// <returns>the wrapper for the logger specified</returns>
                public static ITraceLog WrapLogger(ILogger logger)
                {
                        return (ITraceLog)s_wrapperMap[logger];
                }
  
                /// <summary>
                /// Lookup the wrapper objects for the loggers specified
                /// </summary>
                /// <param name="loggers">the loggers to get the wrappers 
for</param>
                /// <returns>Lookup the wrapper objects for the loggers 
specified</returns>
                public static ITraceLog[] WrapLoggers(ILogger[] loggers)
                {
                        ITraceLog[] results = new ITraceLog[loggers.Length];
                        for(int i=0; i<loggers.Length; i++)
                        {
                                results[i] = WrapLogger(loggers[i]);
                        }
                        return results;
                }
  
                /// <summary>
                /// Method to create the <see cref="ILoggerWrapper"/> objects 
used by
                /// this manager.
                /// </summary>
                /// <param name="logger">The logger to wrap</param>
                /// <returns>The wrapper for the logger specified</returns>
                private static ILoggerWrapper WrapperCreationHandler(ILogger 
logger)
                {
                        return new TraceLogImpl(logger);
                }
  
                #endregion
        }
  }
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.Trace/cs/src/log4net.Ext.Trace.csproj
  
  Index: log4net.Ext.Trace.csproj
  ===================================================================
  <VisualStudioProject>
      <CSHARP
          ProjectType = "Local"
          ProductVersion = "7.0.9466"
          SchemaVersion = "1.0"
          ProjectGuid = "{8C73DF1C-AB2B-4309-A3EC-1ED594239E15}"
      >
          <Build>
              <Settings
                  ApplicationIcon = ""
                  AssemblyKeyContainerName = ""
                  AssemblyName = "log4net.Ext.Trace"
                  AssemblyOriginatorKeyFile = ""
                  DefaultClientScript = "JScript"
                  DefaultHTMLPageLayout = "Grid"
                  DefaultTargetSchema = "IE50"
                  DelaySign = "false"
                  OutputType = "Library"
                  PreBuildEvent = ""
                  PostBuildEvent = ""
                  RootNamespace = "log4net.Ext.Trace"
                  RunPostBuildEvent = "OnBuildSuccess"
                  StartupObject = ""
              >
                  <Config
                      Name = "Debug"
                      AllowUnsafeBlocks = "false"
                      BaseAddress = "285212672"
                      CheckForOverflowUnderflow = "false"
                      ConfigurationOverrideFile = ""
                      DefineConstants = "DEBUG;TRACE"
                      DocumentationFile = ""
                      DebugSymbols = "true"
                      FileAlignment = "4096"
                      IncrementalBuild = "true"
                      NoStdLib = "false"
                      NoWarn = ""
                      Optimize = "false"
                      OutputPath = "..\build\debug\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "4"
                  />
                  <Config
                      Name = "Release"
                      AllowUnsafeBlocks = "false"
                      BaseAddress = "285212672"
                      CheckForOverflowUnderflow = "false"
                      ConfigurationOverrideFile = ""
                      DefineConstants = "TRACE;STRONG"
                      DocumentationFile = ""
                      DebugSymbols = "false"
                      FileAlignment = "4096"
                      IncrementalBuild = "false"
                      NoStdLib = "false"
                      NoWarn = ""
                      Optimize = "true"
                      OutputPath = "..\build\release\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "4"
                  />
              </Settings>
              <References>
                  <Reference
                      Name = "System"
                      AssemblyName = "System"
                      HintPath = 
"..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.dll"
                  />
                  <Reference
                      Name = "System.Data"
                      AssemblyName = "System.Data"
                      HintPath = 
"..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Data.dll"
                  />
                  <Reference
                      Name = "System.XML"
                      AssemblyName = "System.Xml"
                      HintPath = 
"..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
                  />
                  <Reference
                      Name = "log4net"
                      AssemblyName = "log4net"
                      HintPath = 
"..\..\..\..\..\..\bin\net\1.0\release\log4net.dll"
                  />
              </References>
          </Build>
          <Files>
              <Include>
                  <File
                      RelPath = "AssemblyInfo.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "AssemblyVersionInfo.cs"
                      Link = "..\..\..\..\..\..\src\AssemblyVersionInfo.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "ITraceLog.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "TraceLogImpl.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "TraceLogManager.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
              </Include>
          </Files>
      </CSHARP>
  </VisualStudioProject>
  
  
  
  

Reply via email to