nicko       2005/02/16 14:13:50

  Added:       extensions/net/1.0/log4net.Ext.MarshalByRef nant.build
                        nant.config
               extensions/net/1.0/log4net.Ext.MarshalByRef/cs .cvsignore
                        nant.build nant.config
               extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src
                        .cvsignore AssemblyInfo.cs MarshalByRefLogImpl.cs
                        MarshalByRefLogManager.cs
                        log4net.Ext.MarshalByRef.csproj
  Log:
  Added sample extension that returns logger wrappers that are MarshalByRef
  
  Revision  Changes    Path
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/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 target="compile">
              <buildfiles>
                  <include name="*/nant.build" />
                  <!-- exclude current build file -->
                  <exclude name="exclude.build" />
              </buildfiles>
          </nant>
      </target>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/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.MarshalByRef/cs/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  doc
  build
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/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-log4net-assembly">
          <!-- make sure the log4net key file is available to the compiler in a 
release build -->
          <if test="${current.build.config.release}">
              <!-- check if the log4net key file is available -->
              <if test="${not file::exists(log4net.basedir + '/log4net.snk')}">
                  <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." />
              </if>
              <if test="${file::exists(log4net.basedir + '/log4net.snk')}">
                  <!-- 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.MarshalByRef.dll">
              <sources>
                  <include name="src/**/*.cs" />
                  <include name="${log4net.basedir}/src/AssemblyVersionInfo.cs" 
/>
              </sources>
              <references basedir="${log4net.output.dir}">
                  <include name="log4net.dll" />
              </references>
          </csc>
      </target>
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/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="../../../../../" />
  </project>
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  obj
  log4net.xml
  *.csproj.user
  *.suo
  
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/AssemblyInfo.cs
  
  Index: AssemblyInfo.cs
  ===================================================================
  #region Copyright & License
  //
  // Copyright 2001-2005 The Apache Software Foundation
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  // http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  //
  #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.MarshalByRef")]
  [assembly: AssemblyDescription("log4net MarshalByRef Extension")]
  [assembly: AssemblyConfiguration("")]
  [assembly: AssemblyProduct("log4net.Ext.MarshalByRef")]
  [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.MarshalByRef/cs/src/MarshalByRefLogImpl.cs
  
  Index: MarshalByRefLogImpl.cs
  ===================================================================
  #region Copyright & License
  //
  // Copyright 2001-2005 The Apache Software Foundation
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  // http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  //
  #endregion
  
  using System;
  using log4net.Core;
  using log4net.Repository;
  
  namespace log4net.Ext.MarshalByRef
  {
        /// <summary>
        /// Marshal By Reference implementation of <see cref="ILog"/>
        /// </summary>
        /// <remarks>
        /// <para>
        /// Logger wrapper that is <see cref="MarshalByRefObject"/>. These 
objects
        /// can be passed by reference across a remoting boundary.
        /// </para>
        /// </remarks>
        public sealed class MarshalByRefLogImpl : MarshalByRefObject, ILog
        {
                private readonly static Type ThisDeclaringType = 
typeof(MarshalByRefLogImpl);
                private readonly ILogger m_logger;
                private Level m_levelDebug;
                private Level m_levelInfo;
                private Level m_levelWarn;
                private Level m_levelError;
                private Level m_levelFatal;
  
                #region Public Instance Constructors
  
                public MarshalByRefLogImpl(ILogger logger)
                {
                        m_logger = logger;
  
                        // Listen for changes to the repository
                        logger.Repository.ConfigurationChanged += new 
LoggerRepositoryConfigurationChangedEventHandler(LoggerRepositoryConfigurationChanged);
  
                        // load the current levels
                        ReloadLevels(logger.Repository);
                }
  
                #endregion Public Instance Constructors
  
                private void ReloadLevels(ILoggerRepository repository)
                {
                        LevelMap levelMap = repository.LevelMap;
  
                        m_levelDebug = levelMap.LookupWithDefault(Level.Debug);
                        m_levelInfo = levelMap.LookupWithDefault(Level.Info);
                        m_levelWarn = levelMap.LookupWithDefault(Level.Warn);
                        m_levelError = levelMap.LookupWithDefault(Level.Error);
                        m_levelFatal = levelMap.LookupWithDefault(Level.Fatal);
                }
  
                private void LoggerRepositoryConfigurationChanged(object 
sender, EventArgs e)
                {
                        ILoggerRepository repository = sender as 
ILoggerRepository;
                        if (repository != null)
                        {
                                ReloadLevels(repository);
                        }
                }
  
                #region Implementation of ILog
  
                public void Debug(object message) 
                {
                        Logger.Log(ThisDeclaringType, m_levelDebug, message, 
null);
                }
  
                public void Debug(object message, Exception t) 
                {
                        Logger.Log(ThisDeclaringType, m_levelDebug, message, t);
                }
  
                public void DebugFormat(string format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelDebug, 
String.Format(format, args), null);
                }
  
                public void DebugFormat(IFormatProvider provider, string 
format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelDebug, 
String.Format(provider, format, args), null);
                }
  
                public void Info(object message) 
                {
                        Logger.Log(ThisDeclaringType, m_levelInfo, message, 
null);
                }
    
                public void Info(object message, Exception t) 
                {
                        Logger.Log(ThisDeclaringType, m_levelInfo, message, t);
                }
  
                public void InfoFormat(string format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelInfo, 
String.Format(format, args), null);
                }
  
                public void InfoFormat(IFormatProvider provider, string format, 
params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelInfo, 
String.Format(provider, format, args), null);
                }
  
                public void Warn(object message) 
                {
                        Logger.Log(ThisDeclaringType, m_levelWarn, message, 
null);
                }
    
                public void Warn(object message, Exception t) 
                {
                        Logger.Log(ThisDeclaringType, m_levelWarn, message, t);
                }
  
                public void WarnFormat(string format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelWarn, 
String.Format(format, args), null);
                }
  
                public void WarnFormat(IFormatProvider provider, string format, 
params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelWarn, 
String.Format(provider, format, args), null);
                }
  
                public void Error(object message) 
                {
                        Logger.Log(ThisDeclaringType, m_levelError, message, 
null);
                }
  
                public void Error(object message, Exception t) 
                {
                        Logger.Log(ThisDeclaringType, m_levelError, message, t);
                }
  
                public void ErrorFormat(string format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelError, 
String.Format(format, args), null);
                }
  
                public void ErrorFormat(IFormatProvider provider, string 
format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelError, 
String.Format(provider, format, args), null);
                }
  
                public void Fatal(object message) 
                {
                        Logger.Log(ThisDeclaringType, m_levelFatal, message, 
null);
                }
    
                public void Fatal(object message, Exception t) 
                {
                        Logger.Log(ThisDeclaringType, m_levelFatal, message, t);
                }
  
                public void FatalFormat(string format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelFatal, 
String.Format(format, args), null);
                }
  
                public void FatalFormat(IFormatProvider provider, string 
format, params object[] args) 
                {
                        Logger.Log(ThisDeclaringType, m_levelFatal, 
String.Format(provider, format, args), null);
                }
  
                public bool IsDebugEnabled
                {
                        get { return Logger.IsEnabledFor(m_levelDebug); }
                }
    
                public bool IsInfoEnabled
                {
                        get { return Logger.IsEnabledFor(m_levelInfo); }
                }
  
                public bool IsWarnEnabled
                {
                        get { return Logger.IsEnabledFor(m_levelWarn); }
                }
  
                public bool IsErrorEnabled
                {
                        get { return Logger.IsEnabledFor(m_levelError); }
                }
  
                public bool IsFatalEnabled
                {
                        get { return Logger.IsEnabledFor(m_levelFatal); }
                }
  
                #endregion Implementation of ILog
  
                #region Implementation of ILoggerWrapper
  
                public ILogger Logger
                {
                        get { return m_logger; }
                }
  
                #endregion
  
                /// <summary>
                /// Live forever
                /// </summary>
                /// <returns><c>null</c></returns>
                public override object InitializeLifetimeService()
                {
                        return null;
                }
        }
  }
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/MarshalByRefLogManager.cs
  
  Index: MarshalByRefLogManager.cs
  ===================================================================
  #region Copyright & License
  //
  // Copyright 2001-2005 The Apache Software Foundation
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  // http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  //
  #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 Remoting by reference.
   */
  namespace log4net.Ext.MarshalByRef
  {
        /// <summary>
        /// LogManager that returns <see cref="MarshalByRefLogImpl"/> loggers.
        /// </summary>
        public class MarshalByRefLogManager
        {
                #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 MarshalByRefLogManager() { }
  
                #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 ILog 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 ILog 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 ILog 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 ILog[] 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 ILog[] 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 ILog[] 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 ILog 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 ILog 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 ILog 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 ILog 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 ILog 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 ILog 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 ILog WrapLogger(ILogger logger)
                {
                        return (ILog)s_wrapperMap.GetWrapper(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 ILog[] WrapLoggers(ILogger[] loggers)
                {
                        ILog[] results = new ILog[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 MarshalByRefLogImpl(logger);
                }
  
                #endregion
        }
  }
  
  
  
  1.1                  
logging-log4net/extensions/net/1.0/log4net.Ext.MarshalByRef/cs/src/log4net.Ext.MarshalByRef.csproj
  
  Index: log4net.Ext.MarshalByRef.csproj
  ===================================================================
  <VisualStudioProject>
      <CSHARP
          ProjectType = "Local"
          ProductVersion = "7.0.9466"
          SchemaVersion = "1.0"
          ProjectGuid = "{CB985027-C009-4C0F-88C1-8CF11912AE4C}"
      >
          <Build>
              <Settings
                  ApplicationIcon = ""
                  AssemblyKeyContainerName = ""
                  AssemblyName = "log4net.Ext.MarshalByRef"
                  AssemblyOriginatorKeyFile = ""
                  DefaultClientScript = "JScript"
                  DefaultHTMLPageLayout = "Grid"
                  DefaultTargetSchema = "IE50"
                  DelaySign = "false"
                  OutputType = "Library"
                  PreBuildEvent = ""
                  PostBuildEvent = ""
                  RootNamespace = "log4net.Ext.MarshalByRef"
                  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 = "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 = "MarshalByRefLogImpl.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "MarshalByRefLogManager.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
              </Include>
          </Files>
      </CSHARP>
  </VisualStudioProject>
  
  
  
  

Reply via email to