You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by ni...@apache.org on 2004/01/28 21:11:44 UTC

cvs commit: logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/src .cvsignore AssemblyInfo.vb ConsoleApp.exe.config ConsoleApp.vbdproj EntryPoint.vb LoggingExample.vb

nicko       2004/01/28 12:11:44

  Added:       examples/netcf/1.0 .cvsignore cs-examples.sln nant.build
                        nant.config vb-examples.sln
               examples/netcf/1.0/Tutorials nant.build nant.config
               examples/netcf/1.0/Tutorials/ConsoleApp nant.build
                        nant.config
               examples/netcf/1.0/Tutorials/ConsoleApp/cs .cvsignore
                        nant.build nant.config
               examples/netcf/1.0/Tutorials/ConsoleApp/cs/src .cvsignore
                        AssemblyInfo.cs ConsoleApp.csdproj
                        ConsoleApp.exe.config EntryPoint.cs
                        LoggingExample.cs
               examples/netcf/1.0/Tutorials/ConsoleApp/vb .cvsignore
                        nant.build nant.config
               examples/netcf/1.0/Tutorials/ConsoleApp/vb/src .cvsignore
                        AssemblyInfo.vb ConsoleApp.exe.config
                        ConsoleApp.vbdproj EntryPoint.vb LoggingExample.vb
  Log:
  Initial checkin
  
  Revision  Changes    Path
  1.1                  logging-log4net/examples/netcf/1.0/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  cs-examples.suo
  vb-examples.suo
  
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/cs-examples.sln
  
  Index: cs-examples.sln
  ===================================================================
  Microsoft Visual Studio Solution File, Format Version 8.00
  Project("{20D4826A-C6FA-45DB-90F4-C717570B9F32}") = "ConsoleApp", "Tutorials\ConsoleApp\cs\src\ConsoleApp.csdproj", "{06757B10-BBC2-4858-AB65-26F92D0D6A5D}"
  	ProjectSection(ProjectDependencies) = postProject
  	EndProjectSection
  EndProject
  Global
  	GlobalSection(SolutionConfiguration) = preSolution
  		Debug = Debug
  		Release = Release
  	EndGlobalSection
  	GlobalSection(ProjectConfiguration) = postSolution
  		{06757B10-BBC2-4858-AB65-26F92D0D6A5D}.Debug.ActiveCfg = Debug|Windows CE
  		{06757B10-BBC2-4858-AB65-26F92D0D6A5D}.Debug.Build.0 = Debug|Windows CE
  		{06757B10-BBC2-4858-AB65-26F92D0D6A5D}.Debug.Deploy.0 = Debug|Windows CE
  		{06757B10-BBC2-4858-AB65-26F92D0D6A5D}.Release.ActiveCfg = Release|Windows CE
  		{06757B10-BBC2-4858-AB65-26F92D0D6A5D}.Release.Build.0 = Release|Windows CE
  		{06757B10-BBC2-4858-AB65-26F92D0D6A5D}.Release.Deploy.0 = Release|Windows CE
  	EndGlobalSection
  	GlobalSection(ExtensibilityGlobals) = postSolution
  	EndGlobalSection
  	GlobalSection(ExtensibilityAddIns) = postSolution
  	EndGlobalSection
  EndGlobal
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="netcf-1.0-examples" default="compile" xmlnds="http://tempuri.org/nant-vs.xsd">
      <!-- include configuration file -->
      <include buildfile="nant.config" />
      <!-- compile all .NET Compact Framework 1.0 examples -->
      <target name="compile" description="Builds .NET Compact Framework 1.0 examples">
          <available type="Framework" resource="${project.runtime.config}-${project.runtime.version}"
              property="temp.framework.available" />
          <if propertytrue="temp.framework.available">
              <nant buildfile="Tutorials/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. Examples skipped." />
              </ifnot>
          </ifnot>
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/examples/netcf/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 Compact Framework 1.0" readonly="false" />
  </project>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/vb-examples.sln
  
  Index: vb-examples.sln
  ===================================================================
  Microsoft Visual Studio Solution File, Format Version 8.00
  Project("{CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}") = "ConsoleApp", "Tutorials\ConsoleApp\vb\src\ConsoleApp.vbdproj", "{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}"
  	ProjectSection(ProjectDependencies) = postProject
  	EndProjectSection
  EndProject
  Global
  	GlobalSection(SolutionConfiguration) = preSolution
  		Debug = Debug
  		Release = Release
  	EndGlobalSection
  	GlobalSection(ProjectConfiguration) = postSolution
  		{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}.Debug.ActiveCfg = Debug|Windows CE
  		{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}.Debug.Build.0 = Debug|Windows CE
  		{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}.Debug.Deploy.0 = Debug|Windows CE
  		{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}.Release.ActiveCfg = Release|Windows CE
  		{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}.Release.Build.0 = Release|Windows CE
  		{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}.Release.Deploy.0 = Release|Windows CE
  	EndGlobalSection
  	GlobalSection(ExtensibilityGlobals) = postSolution
  	EndGlobalSection
  	GlobalSection(ExtensibilityAddIns) = postSolution
  	EndGlobalSection
  EndGlobal
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="tutorials-examples" default="compile" xmlnds="http://tempuri.org/nant-vs.xsd">
      <!-- compile Tutorials examples -->
      <target name="compile" description="Builds Tutorials examples">
          <nant buildfile="ConsoleApp/nant.build" target="compile" />
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/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/examples/netcf/1.0/Tutorials/ConsoleApp/nant.build
  
  Index: nant.build
  ===================================================================
  <?xml version="1.0" ?>
  <project name="consoleapp-example" default="compile" xmlnds="http://tempuri.org/nant-vs.xsd">
      <!-- compile ConsoleApp example -->
      <target name="compile" description="Builds ConsoleApp example">
          <nant buildfile="cs/nant.build" target="compile" />
          <nant buildfile="vb/nant.build" target="compile" />
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/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/examples/netcf/1.0/Tutorials/ConsoleApp/cs/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  doc
  build
  
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/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">
          <!-- copy log4net build output  -->
          <copy todir="${current.bin.dir}">
              <fileset basedir="${log4net.basedir}/${current.bin.dir}">
                  <includes name="*.*" />
              </fileset>
          </copy>
          <!-- compile the example -->
          <csc target="exe" warnaserror="true" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/ConsoleApp.exe">
              <sources defaultexcludes="true">
                  <includes name="src/**/*.cs" />
                  <includes name="${log4net.basedir}/src/AssemblyVersionInfo.cs" />
              </sources>
              <references defaultexcludes="true">
                  <includes name="mscorlib.dll" fromPath="false" />
                  <includes name="System.dll" fromPath="false" />
                  <includes name="${current.bin.dir}/log4net.dll" frompath="false" />
              </references>
          </csc>
          <!-- copy the ConsoleApp application configuration file -->
          <copy file="src/ConsoleApp.exe.config" todir="${current.bin.dir}" />
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/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/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  obj
  ConsoleApp.sln
  ConsoleApp.suo
  ConsoleApp.csdproj.user
  
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/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 - ConsoleApp")]
  [assembly: AssemblyDescription("log4net ConsoleApp")]
  [assembly: AssemblyConfiguration("")]
  [assembly: AssemblyCompany("Neoworks Limited")]
  [assembly: AssemblyProduct("log4net - TestApp")]
  [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.
  //
  [assembly: AssemblyDelaySign(false)]
  [assembly: AssemblyKeyFile("")]
  [assembly: AssemblyKeyName("")]
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/ConsoleApp.csdproj
  
  Index: ConsoleApp.csdproj
  ===================================================================
  <VisualStudioProject>
      <ECSHARP
          ProjectType = "Local"
          ProductVersion = "7.10.3077"
          SchemaVersion = "1.0"
          ProjectGuid = "{06757B10-BBC2-4858-AB65-26F92D0D6A5D}"
      >
          <Build>
              <Settings
                  ApplicationIcon = ""
                  AssemblyKeyContainerName = ""
                  AssemblyName = "ConsoleApp"
                  AssemblyOriginatorKeyFile = ""
                  DelaySign = "false"
                  OutputType = "Exe"
                  OutputFileFolder = "\Program Files\ConsoleAppCS"
                  RootNamespace = "ConsoleApp"
                  StartupObject = ""
              >
                  <Platform Name = "Windows CE" />
                  <Config
                      Name = "Debug|Windows CE"
                      AllowUnsafeBlocks = "false"
                      BaseAddress = "0"
                      CheckForOverflowUnderflow = "false"
                      ConfigurationOverrideFile = ""
                      DefineConstants = "DEBUG;TRACE"
                      DocumentationFile = ""
                      DebugSymbols = "true"
                      FileAlignment = "4096"
                      IncrementalBuild = "false"
                      Optimize = "false"
                      OutputPath = "..\build\netcf\1.0\debug\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "4"
                  />
                  <Config
                      Name = "Release|Windows CE"
                      AllowUnsafeBlocks = "false"
                      BaseAddress = "0"
                      CheckForOverflowUnderflow = "false"
                      ConfigurationOverrideFile = ""
                      DefineConstants = "TRACE"
                      DocumentationFile = ""
                      DebugSymbols = "false"
                      FileAlignment = "4096"
                      IncrementalBuild = "false"
                      Optimize = "true"
                      OutputPath = "..\build\netcf\1.0\release\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "4"
                  />
              </Settings>
              <References>
                  <Reference
                      Platform = "Windows CE"
                      Name = "MSCorLib"
                      AssemblyName = "mscorlib"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE"
                      Name = "log4net"
                      AssemblyName = "log4net"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Design"
                      AssemblyName = "System.CF.Design"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Design.UI"
                      AssemblyName = "System.CF.Design.UI"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Windows.Forms"
                      AssemblyName = "System.CF.Windows.Forms"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Drawing"
                      AssemblyName = "System.CF.Drawing"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System"
                      AssemblyName = "System"
                      Private = "False"
                  />
              </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 = "ConsoleApp.exe.config"
                      BuildAction = "Content"
                  />
                  <File
                      RelPath = "EntryPoint.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "LoggingExample.cs"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
              </Include>
          </Files>
      </ECSHARP>
  </VisualStudioProject>
  
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/ConsoleApp.exe.config
  
  Index: ConsoleApp.exe.config
  ===================================================================
  <?xml version="1.0" encoding="utf-8" ?>
  
  <!-- .NET application configuration file
  
       The .NET Compact Framework does not support application configuration files,
       but log4net supports using configuration files with similar names and structure,
       to store the log4net configuration.
   -->
  
  <configuration>
  	<!-- This section contains the log4net configuration settings -->
  	<log4net>
  
  		<!-- Define some output appenders -->
  		
  		<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  			<param name="File" value="LQSS-SS-log.txt" />
  			<param name="AppendToFile" value="true" />
  
  			<param name="MaxSizeRollBackups" value="10" />
  			<param name="MaximumFileSize" value="100" />
  			<param name="RollingStyle" value="Size" />
  			<param name="StaticLogFileName" value="true" />
  
  			<layout type="log4net.Layout.PatternLayout">
  				<param name="Header" value="[Header]\r\n"/>
  				<param name="Footer" value="[Footer]\r\n"/>
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
  			</layout>
  		</appender>
  		
  		<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
  			<param name="File" value="log-file.txt" />
  			
  			<!-- Example using environment variables in params -->
  			<!-- <param name="File" value="${TMP}\\log-file.txt" /> -->
  			<param name="AppendToFile" value="true" />
  			
  			<!-- An alternate output encoding can be specified -->
  			<!-- <param name="Encoding" value="unicodeFFFE" /> -->
  
  			<layout type="log4net.Layout.PatternLayout">
  				<param name="Header" value="[Header]\r\n"/>
  				<param name="Footer" value="[Footer]\r\n"/>
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
  			</layout>
  			<!-- Alternate layout using XML
  			<layout type="log4net.Layout.XMLLayout" /> -->
  		</appender>
  
  	    	<appender name="MulticastAppender" type="log4net.Appender.UdpAppender" >
  			<param name="Threshold" value="WARN" />
  		    	<param name="RemoteAddress" value="224.0.0.1" />
  		    	<param name="RemotePort" value="8080" />
  		    	<layout type="log4net.Layout.PatternLayout">
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
  		    	</layout>
  	    	</appender>
  
   		<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
  			<layout type="log4net.Layout.PatternLayout">
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
  			</layout>
  		</appender>
  		
   		<!-- 
   		
   		<appender name="A" type="log4net.Appender.ForwardingAppender" >
  			<param name="Threshold" value="WARN"/>
  			<appender-ref ref="ConsoleAppender" />
  		</appender>
  		
   		<appender name="B" type="log4net.Appender.ForwardingAppender" >
   			<filter type="log4net.Filter.LevelRangeFilter">
  				<param name="LevelMin" value="DEBUG"/>
  				<param name="LevelMax" value="INFO"/>
   			</filter>
  			<appender-ref ref="ConsoleAppender" />
  		</appender> 
  		
  		-->
  
  		<!-- Setup the root category, add the appenders and set the default level -->
  		
  		<root>
  			<level value="INFO" />
  			<appender-ref ref="LogFileAppender" />
  			<appender-ref ref="ConsoleAppender" />
  			<appender-ref ref="MulticastAppender" />
  			<!-- <appender-ref ref="A" /> -->
  		</root>
  
  		<!-- Specify the level for some specific categories -->
  		
  		<logger name="ConsoleApp.LoggingExample">
  			<!-- <appender-ref ref="B" /> -->
  			<level value="ALL" />
  			<appender-ref ref="RollingLogFileAppender" />
  		</logger>
  		
  	</log4net>
  
  </configuration>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/EntryPoint.cs
  
  Index: EntryPoint.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
  
  namespace ConsoleApp
  {
  	using System;
  
  	using log4net;
  
  	/// <summary>
  	/// Example of how to simply configure and use log4net in a .NET Compact Framework
  	/// application.
  	/// </summary>
  	/// <remarks>
  	/// <para>
  	/// The .NET Compact Framework does not support retrieving assembly-level
  	/// attributes, therefor log4net must be configured by code.
  	/// </para>
  	/// <para>
  	/// The .NET Compact Framework does not support hooking up the <c>AppDomain.ProcessExit</c>
  	/// and <c>AppDomain.DomainUnload</c> events, so log4net must be shutdown manually to 
  	/// free all resources.
  	/// </para>
  	/// </remarks>
  	public class EntryPoint
  	{
  		/// <summary>
  		/// Application entry point.
  		/// </summary>
  		public static void Main() 
  		{
  			// Uncomment the next line to enable log4net internal debugging
  			// log4net.helpers.LogLog.InternalDebugging = true;
  
  			// This will instruct log4net to look for a configuration file
  			// called ConsoleApp.exe.config in the application base
  			// directory (i.e. the directory containing ConsoleApp.exe)
  			log4net.Config.XmlConfigurator.Configure();
  
  			// Create a logger
  			ILog log = LogManager.GetLogger(typeof(EntryPoint));
  
  			// Log an info level message
  			if (log.IsInfoEnabled) log.Info("Application [ConsoleApp] Start");
  
  			// Invoke static LogEvents method on LoggingExample class
  			LoggingExample.LogEvents(); 
  
  			Console.Write("Press Enter to exit...");
  			Console.ReadLine();
  
  			if (log.IsInfoEnabled) log.Info("Application [ConsoleApp] Stop");
  
  			// It's not possible to use shutdown hooks in the .NET Compact Framework,
  			// so you have manually shutdown log4net to free all resoures.
  			LogManager.Shutdown();
  		}
  	}
  }
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/cs/src/LoggingExample.cs
  
  Index: LoggingExample.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
  
  namespace ConsoleApp
  {
  	using System;
  
  	/// <summary>
  	/// Illustrates using log4net to conditionally log events, and 
  	/// using log4net to log exceptions, ...
  	/// </summary>
  	public class LoggingExample
  	{
  		// Create a logger for use in this class
  		private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(LoggingExample));
  
  		/// <summary>
  		/// Logs events.
  		/// </summary>
  		public static void LogEvents()
  		{
  			// Log a debug message. Test if debug is enabled before
  			// attempting to log the message. This is not required but
  			// can make running without logging faster.
  			if (log.IsDebugEnabled) log.Debug("This is a debug message");
  
  			try
  			{
  				Bar();
  			}
  			catch(Exception ex)
  			{
  				// Log an error with an exception
  				log.Error("Exception thrown from method Bar", ex);
  			}
  
  			log.Error("Hey this is an error!");
  
  			// Push a message on to the Nested Diagnostic Context stack
  			using(log4net.NDC.Push("NDC_Message"))
  			{
  				log.Warn("This should have an NDC message");
  
  				// Set a Mapped Diagnostic Context value  
  				log4net.MDC.Set("auth", "auth-none");
  				log.Warn("This should have an MDC message for the key 'auth'");
  
  			} // The NDC message is popped off the stack at the end of the using {} block
  
  			log.Warn("See the NDC has been popped of! The MDC 'auth' key is still with us.");
  		}
  
  		// Helper methods to demonstrate location information and nested exceptions
  
  		private static void Bar()
  		{
  			Goo();
  		}
  
  		private static void Foo()
  		{
  			throw new Exception("This is an Exception");
  		}
  
  		private static void Goo()
  		{
  			try
  			{
  				Foo();
  			}
  			catch(Exception ex)
  			{
  				throw new ArithmeticException("Failed in Goo. Calling Foo. Inner Exception provided", ex);
  			}
  		}
  	}
  }
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  bin
  doc
  build
  
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/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">
          <!-- copy log4net build output  -->
          <copy todir="${current.bin.dir}">
              <fileset basedir="${log4net.basedir}/${current.bin.dir}">
                  <includes name="*.*" />
              </fileset>
          </copy>
          <!-- compile the example -->
          <vbc target="exe" warnaserror="true" debug="${current.build.debug}" define="${current.build.defines.vbc}"
              output="${current.bin.dir}/ConsoleApp.exe">
              <arg value="/netcf" />
              <arg value="/sdkpath:${nant.settings.currentframework.frameworkassemblydirectory}" />
              <sources defaultexcludes="true">
                  <includes name="src/**/*.vb" />
                  <includes name="${log4net.basedir}/src/AssemblyVersionInfo.vb" />
              </sources>
              <references defaultexcludes="true">
                  <includes name="System.dll" fromPath="false" />
                  <includes name="${current.bin.dir}/log4net.dll" frompath="false" />
              </references>
          </vbc>
          <!-- copy the ConsoleApp application configuration file -->
          <copy file="src/ConsoleApp.exe.config" todir="${current.bin.dir}" />
      </target>
  </project>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/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/examples/netcf/1.0/Tutorials/ConsoleApp/vb/src/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  obj
  ConsoleApp.sln
  ConsoleApp.suo
  ConsoleApp.vbdproj.user
  
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/src/AssemblyInfo.vb
  
  Index: AssemblyInfo.vb
  ===================================================================
  #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.
  '
  #End Region 
  
  Imports System.Reflection
  Imports 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 - ConsoleApp")>
  <Assembly:AssemblyDescription("log4net ConsoleApp")>
  <Assembly:AssemblyConfiguration("")>
  <Assembly:AssemblyCompany("Neoworks Limited")>
  <Assembly:AssemblyProduct("log4net - ConsoleApp")>
  <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.
  '
  <Assembly:AssemblyDelaySign(false)>
  <Assembly:AssemblyKeyFile("")>
  <Assembly:AssemblyKeyName("")>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/src/ConsoleApp.exe.config
  
  Index: ConsoleApp.exe.config
  ===================================================================
  <?xml version="1.0" encoding="utf-8" ?>
  
  <!-- .NET application configuration file
  
       The .NET Compact Framework does not support application configuration files,
       but log4net supports using configuration files with similar names and structure,
       to store the log4net configuration.
   -->
  
  <configuration>
  	<!-- This section contains the log4net configuration settings -->
  	<log4net>
  
  		<!-- Define some output appenders -->
  		
  		<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  			<param name="File" value="LQSS-SS-log.txt" />
  			<param name="AppendToFile" value="true" />
  
  			<param name="MaxSizeRollBackups" value="10" />
  			<param name="MaximumFileSize" value="100" />
  			<param name="RollingStyle" value="Size" />
  			<param name="StaticLogFileName" value="true" />
  
  			<layout type="log4net.Layout.PatternLayout">
  				<param name="Header" value="[Header]\r\n"/>
  				<param name="Footer" value="[Footer]\r\n"/>
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
  			</layout>
  		</appender>
  		
  		<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
  			<param name="File" value="log-file.txt" />
  			
  			<!-- Example using environment variables in params -->
  			<!-- <param name="File" value="${TMP}\\log-file.txt" /> -->
  			<param name="AppendToFile" value="true" />
  			
  			<!-- An alternate output encoding can be specified -->
  			<!-- <param name="Encoding" value="unicodeFFFE" /> -->
  
  			<layout type="log4net.Layout.PatternLayout">
  				<param name="Header" value="[Header]\r\n"/>
  				<param name="Footer" value="[Footer]\r\n"/>
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
  			</layout>
  			<!-- Alternate layout using XML
  			<layout type="log4net.Layout.XMLLayout" /> -->
  		</appender>
  
  	    	<appender name="MulticastAppender" type="log4net.Appender.UdpAppender" >
  			<param name="Threshold" value="WARN" />
  		    	<param name="RemoteAddress" value="224.0.0.1" />
  		    	<param name="RemotePort" value="8080" />
  		    	<layout type="log4net.Layout.PatternLayout">
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
  		    	</layout>
  	    	</appender>
  
   		<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
  			<layout type="log4net.Layout.PatternLayout">
  				<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
  			</layout>
  		</appender>
  		
   		<!-- 
   		
   		<appender name="A" type="log4net.Appender.ForwardingAppender" >
  			<param name="Threshold" value="WARN"/>
  			<appender-ref ref="ConsoleAppender" />
  		</appender>
  		
   		<appender name="B" type="log4net.Appender.ForwardingAppender" >
   			<filter type="log4net.Filter.LevelRangeFilter">
  				<param name="LevelMin" value="DEBUG"/>
  				<param name="LevelMax" value="INFO"/>
   			</filter>
  			<appender-ref ref="ConsoleAppender" />
  		</appender> 
  		
  		-->
  
  		<!-- Setup the root category, add the appenders and set the default level -->
  		
  		<root>
  			<level value="INFO" />
  			<appender-ref ref="LogFileAppender" />
  			<appender-ref ref="ConsoleAppender" />
  			<appender-ref ref="MulticastAppender" />
  			<!-- <appender-ref ref="A" /> -->
  		</root>
  
  		<!-- Specify the level for some specific categories -->
  		
  		<logger name="ConsoleApp.LoggingExample">
  			<!-- <appender-ref ref="B" /> -->
  			<level value="ALL" />
  			<appender-ref ref="RollingLogFileAppender" />
  		</logger>
  		
  	</log4net>
  
  </configuration>
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/src/ConsoleApp.vbdproj
  
  Index: ConsoleApp.vbdproj
  ===================================================================
  <VisualStudioProject>
      <EVisualBasic
          ProjectType = "Local"
          ProductVersion = "7.10.3077"
          SchemaVersion = "1.0"
          ProjectGuid = "{E923C49B-5C5F-49A3-AFE1-7DDB2EC31757}"
      >
          <Build>
              <Settings
                  ApplicationIcon = ""
                  AssemblyKeyContainerName = ""
                  AssemblyName = "ConsoleApp"
                  AssemblyOriginatorKeyFile = ""
                  AssemblyOriginatorKeyMode = "None"
                  DelaySign = "false"
                  OutputType = "Exe"
                  OptionCompare = "Binary"
                  OptionExplicit = "On"
                  OptionStrict = "Off"
                  OutputFileFolder = "\Program Files\ConsoleAppVB"
                  RootNamespace = "ConsoleApp"
                  StartupObject = ""
              >
                  <Platform Name = "Windows CE" />
                  <Config
                      Name = "Debug|Windows CE"
                      BaseAddress = "0"
                      ConfigurationOverrideFile = ""
                      DefineConstants = ""
                      DefineDebug = "true"
                      DefineTrace = "true"
                      DebugSymbols = "true"
                      IncrementalBuild = "false"
                      Optimize = "false"
                      OutputPath = "..\build\netcf\1.0\debug\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "1"
                  />
                  <Config
                      Name = "Release|Windows CE"
                      BaseAddress = "0"
                      ConfigurationOverrideFile = ""
                      DefineConstants = ""
                      DefineDebug = "false"
                      DefineTrace = "true"
                      DebugSymbols = "false"
                      IncrementalBuild = "false"
                      Optimize = "false"
                      OutputPath = "..\build\netcf\1.0\release\"
                      RegisterForComInterop = "false"
                      RemoveIntegerChecks = "false"
                      TreatWarningsAsErrors = "false"
                      WarningLevel = "1"
                  />
              </Settings>
              <References>
                  <Reference
                      Platform = "Windows CE"
                      Name = "log4net"
                      AssemblyName = "log4net"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Design"
                      AssemblyName = "System.CF.Design"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Design.UI"
                      AssemblyName = "System.CF.Design.UI"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Windows.Forms"
                      AssemblyName = "System.CF.Windows.Forms"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System.CF.Drawing"
                      AssemblyName = "System.CF.Drawing"
                      Private = "False"
                  />
                  <Reference
                      Platform = "Windows CE-Designer"
                      Name = "System"
                      AssemblyName = "System"
                      Private = "False"
                  />
              </References>
              <Imports>
                  <Import Namespace = "Microsoft.VisualBasic" />
                  <Import Namespace = "System" />
                  <Import Namespace = "System.Collections" />
                  <Import Namespace = "System.Configuration" />
                  <Import Namespace = "System.Diagnostics" />
              </Imports>
          </Build>
          <Files>
              <Include>
                  <File
                      RelPath = "AssemblyInfo.vb"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "AssemblyVersionInfo.vb"
                      Link = "..\..\..\..\..\..\..\src\AssemblyVersionInfo.vb"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "ConsoleApp.exe.config"
                      BuildAction = "Content"
                  />
                  <File
                      RelPath = "EntryPoint.vb"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
                  <File
                      RelPath = "LoggingExample.vb"
                      SubType = "Code"
                      BuildAction = "Compile"
                  />
              </Include>
          </Files>
      </EVisualBasic>
  </VisualStudioProject>
  
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/src/EntryPoint.vb
  
  Index: EntryPoint.vb
  ===================================================================
  #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.
  ' 
  #End Region
  
  Imports System
  
  Imports log4net
  
  Namespace ConsoleApp
  	' Example of how to simply configure and use log4net in a .NET Compact Framework
  	' application.
  	'
  	' The .NET Compact Framework does not support retrieving assembly-level
  	' attributes, therefor log4net must be configured by code.
  	'
  	' The .NET Compact Framework does not support hooking up the <c>AppDomain.ProcessExit</c>
  	' and <c>AppDomain.DomainUnload</c> events, so log4net must be shutdown manually to 
  	' free all resources.
  	Public Class EntryPoint
  		' Application entry point.
  		Public Shared Sub Main() 
  			' Uncomment the next line to enable log4net internal debugging
  			' log4net.helpers.LogLog.InternalDebugging = true;
  
  			' This will instruct log4net to look for a configuration file
  			' called ConsoleApp.exe.config in the application base
  			' directory (i.e. the directory containing ConsoleApp.exe)
  			log4net.Config.XmlConfigurator.Configure()
  
  			' Create a logger
  			Dim log As ILog = LogManager.GetLogger(GetType(EntryPoint))
  
  			' Log an info level message
  			If log.IsInfoEnabled Then log.Info("Application [ConsoleApp] Start")
  
  			' Invoke shared LogEvents method on LoggingExample class
  			LoggingExample.LogEvents()
  
  			Console.Write("Press Enter to exit...")
  			Console.ReadLine()
  
  			If log.IsInfoEnabled Then log.Info("Application [ConsoleApp] Stop")
  
  			' It's not possible to use shutdown hooks in the .NET Compact Framework,
  			' so you have manually shutdown log4net to free all resoures.
  			LogManager.Shutdown()
  		End Sub
  	End Class
  End Namespace
  
  
  
  1.1                  logging-log4net/examples/netcf/1.0/Tutorials/ConsoleApp/vb/src/LoggingExample.vb
  
  Index: LoggingExample.vb
  ===================================================================
  #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.
  ' 
  #End Region
  
  Imports System
  
  Namespace ConsoleApp
  	' Illustrates using log4net to conditionally log events, and 
  	' using log4net to log exceptions, ...
  	Public Class LoggingExample
  		' Create a logger for use in this class
  		Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(GetType(LoggingExample))
  
  		' Logs events.
  		Public Shared Sub LogEvents()
  			' Log a debug message. Test if debug is enabled before
  			' attempting to log the message. This is not required but
  			' can make running without logging faster.
  			If log.IsDebugEnabled Then log.Debug("This is a debug message")
  
  			Try
  				Bar()
  			Catch ex As Exception
  				' Log an error with an exception
  				log.Error("Exception thrown from method Bar", ex)
  			End Try
  
  			log.Error("Hey this is an error!")
  
  			Dim disposableFrame As IDisposable
  
  			Try
  				' Push a message on to the Nested Diagnostic Context stack
  				log4net.NDC.Push("NDC_Message")
  
  				log.Warn("This should have an NDC message")
  
  				' Set a Mapped Diagnostic Context value  
  				log4net.MDC.Set("auth", "auth-none")
  				log.Warn("This should have an MDC message for the key 'auth'")
  			Finally
  				' The NDC message is popped off the stack by using the Dispose method
     				If (Not disposableFrame is Nothing) Then disposableFrame.Dispose()
  			End Try
  
  			log.Warn("See the NDC has been popped of! The MDC 'auth' key is still with us.")
  		End Sub
  
  		' Helper methods to demonstrate location information and nested exceptions
  
  		Private Shared Sub Bar()
  			Goo()
  		End Sub
  
  		Private Shared Sub Foo()
  			Throw New Exception("This is an Exception")
  		End Sub
  
  		Private Shared Sub Goo()
  			Try
  				Foo()
  			Catch ex As Exception
  				Throw New ArithmeticException("Failed in Goo. Calling Foo. Inner Exception provided", ex)
  			End Try
  		End Sub
  	End Class
  End Namespace