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>