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 rg...@apache.org on 2009/05/24 00:13:13 UTC

svn commit: r778044 - in /logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src: Appender/PatternLayoutAdoNetAppender.cs Appender/PatternLayoutAdoNetAppenderParameter.cs SampleAppendersApp.vs2005.csproj

Author: rgrabowski
Date: Sat May 23 22:13:12 2009
New Revision: 778044

URL: http://svn.apache.org/viewvc?rev=778044&view=rev
Log:
Sample AdoNetAppender that makes adding pattern layouts and converters slightly less verbose:

<parameter>
   <parameterName value="@MyColumn "/>
   <dbType value="String" />
   <size value="255" />
   <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%property{MyColumn}" />
   </layout>
</parameter>

<patternLayoutParameter>
   <parameterName value="@MyColumn "/>
   <dbType value="String" />
   <size value="255" />
   <conversionPattern value="%property{MyColumn}" />
</patternLayoutParameter>

Added:
    logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs
    logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs
    logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/SampleAppendersApp.vs2005.csproj

Added: logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs?rev=778044&view=auto
==============================================================================
--- logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs (added)
+++ logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppender.cs Sat May 23 22:13:12 2009
@@ -0,0 +1,86 @@
+#region Apache License
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more 
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership. 
+// The ASF licenses this file to you under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with 
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using System.Collections;
+using log4net.Appender;
+using log4net.Layout;
+using log4net.Util;
+
+namespace SampleAppendersApp.Appender
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    /// <example>
+    /// <code>
+    /// <![CDATA[
+    ///   <appender name="PatternLayoutAdoNetAppender" type="ConsoleApplication1.PatternLayoutAdoNetAppender, ConsoleApplication1">
+    ///   <connectionType value="log4net.Tests.Appender.AdoNet.Log4NetConnection, log4net.Tests" />
+    ///   <connectionString value="..." />
+    ///   <commandText value="INSERT INTO Log4Net (CustomValue1, CustomValue2) VALUES (@CustomValue1, @CustsomValue2)" />
+    ///   <converter>
+    ///    <name value="echo" />
+    ///     <type value="ConsoleApplication1.EchoConverter, ConsoleApplication1" />
+    ///   </converter>
+    ///   <converter>
+    ///     <name value="reverse" />
+    ///     <type value="ConsoleApplication1.ReverseConverter, ConsoleApplication1" />
+    ///   </converter>
+    ///   <patternLayoutParameter>
+    ///     <parameterName value="@CustomValue1"/>
+    ///     <dbType value="String" />
+    ///     <conversionPattern value="%echo{Hello World}" />
+    ///   </patternLayoutParameter>
+    ///   <patternLayoutParameter>
+    ///     <parameterName value="@CustomValue2"/>
+    ///     <dbType value="String" />
+    ///     <conversionPattern value="%reverse{Goodbye}" />
+    ///   </patternLayoutParameter>
+    ///   </appender>
+    /// ]]>
+    /// </code>
+    /// </example>
+    public class PatternLayoutAdoNetAppender : AdoNetAppender
+    {
+        private readonly ArrayList m_converters = new ArrayList();
+
+        public void AddConverter(ConverterInfo converterInfo)
+        {
+            m_converters.Add(converterInfo);
+        }
+
+        public void AddPatternLayoutParameter(PatternLayoutAdoNetAppenderParameter parameter)
+        {
+            PatternLayout patternLayout = new PatternLayout(parameter.ConversionPattern);
+            addConveters(patternLayout);
+            patternLayout.ActivateOptions();
+
+            parameter.Layout = new Layout2RawLayoutAdapter(patternLayout);
+            m_parameters.Add(parameter);
+        }
+
+        private void addConveters(PatternLayout patternLayout)
+        {
+            foreach (ConverterInfo conveterInfo in m_converters)
+            {
+                patternLayout.AddConverter(conveterInfo);
+            }
+        }
+    }
+}
\ No newline at end of file

Added: logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs?rev=778044&view=auto
==============================================================================
--- logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs (added)
+++ logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/PatternLayoutAdoNetAppenderParameter.cs Sat May 23 22:13:12 2009
@@ -0,0 +1,34 @@
+#region Apache License
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more 
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership. 
+// The ASF licenses this file to you under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with 
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using log4net.Appender;
+
+namespace SampleAppendersApp.Appender
+{
+    public class PatternLayoutAdoNetAppenderParameter : AdoNetAppenderParameter
+    {
+        private string conversionPattern;
+
+        public string ConversionPattern
+        {
+            get { return conversionPattern; }
+            set { conversionPattern = value; }
+        }
+    }
+}

Added: logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/SampleAppendersApp.vs2005.csproj
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/SampleAppendersApp.vs2005.csproj?rev=778044&view=auto
==============================================================================
--- logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/SampleAppendersApp.vs2005.csproj (added)
+++ logging/log4net/trunk/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/SampleAppendersApp.vs2005.csproj Sat May 23 22:13:12 2009
@@ -0,0 +1,138 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <ProjectType>Local</ProjectType>
+    <ProductVersion>8.0.50727</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{9E715F72-7F70-421B-A2BF-E9CB42F88F5C}</ProjectGuid>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ApplicationIcon>
+    </ApplicationIcon>
+    <AssemblyKeyContainerName>
+    </AssemblyKeyContainerName>
+    <AssemblyName>SampleAppendersApp</AssemblyName>
+    <AssemblyOriginatorKeyFile>
+    </AssemblyOriginatorKeyFile>
+    <DefaultClientScript>JScript</DefaultClientScript>
+    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
+    <DefaultTargetSchema>IE50</DefaultTargetSchema>
+    <DelaySign>false</DelaySign>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>SampleAppendersApp</RootNamespace>
+    <StartupObject>SampleAppendersApp.LoggingExample</StartupObject>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <OutputPath>..\build\debug\</OutputPath>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <BaseAddress>285212672</BaseAddress>
+    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <DebugSymbols>true</DebugSymbols>
+    <FileAlignment>4096</FileAlignment>
+    <Optimize>false</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>full</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <OutputPath>..\build\release\</OutputPath>
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+    <BaseAddress>285212672</BaseAddress>
+    <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>TRACE</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <DebugSymbols>false</DebugSymbols>
+    <FileAlignment>4096</FileAlignment>
+    <Optimize>true</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>none</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="log4net, Version=1.2.10.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\..\..\..\build\bin\net\1.0\debug\log4net.dll</HintPath>
+    </Reference>
+    <Reference Include="System">
+      <Name>System</Name>
+    </Reference>
+    <Reference Include="System.Data">
+      <Name>System.Data</Name>
+    </Reference>
+    <Reference Include="System.Messaging">
+      <Name>System.Messaging</Name>
+    </Reference>
+    <Reference Include="System.Web">
+      <Name>System.Web</Name>
+    </Reference>
+    <Reference Include="System.Windows.Forms">
+      <Name>System.Windows.Forms</Name>
+    </Reference>
+    <Reference Include="System.Xml">
+      <Name>System.XML</Name>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+    <Compile Include="..\..\..\..\..\..\..\src\AssemblyVersionInfo.cs">
+      <Link>AssemblyVersionInfo.cs</Link>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\AsyncAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\FastDbAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\FireEventAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\MessageBoxAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\MessageObjectExpanderAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\MsmqAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\PatternFileAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Appender\PatternLayoutAdoNetAppender.cs" />
+    <Compile Include="Appender\PatternLayoutAdoNetAppenderParameter.cs" />
+    <Compile Include="Appender\SimpleSmtpAppender.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="LoggingExample.cs">
+      <SubType>Code</SubType>
+    </Compile>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+</Project>
\ No newline at end of file