nicko       2005/06/13 11:10:34

  Modified:    examples/net/1.0/Appenders/SampleAppendersApp/cs/src
                        App.config SampleAppendersApp.csproj
  Added:       examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender
                        FastDbAppender.cs
  Log:
  Added simple sample database appender
  
  Revision  Changes    Path
  1.4       +7 -0      
logging-log4net/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/App.config
  
  Index: App.config
  ===================================================================
  RCS file: 
/home/cvs/logging-log4net/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/App.config,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- App.config        31 May 2005 14:15:32 -0000      1.3
  +++ App.config        13 Jun 2005 18:10:34 -0000      1.4
  @@ -67,6 +67,10 @@
                        <layout type="log4net.Layout.PatternLayout" 
value="%date [%thread] %-5level %logger - %message%newline" />

                </appender>

                

  +             <appender name="FastDbAppender" 
type="SampleAppendersApp.Appender.FastDbAppender, SampleAppendersApp">

  +                     <connectionString value="Persist Security 
Info=False;Integrated Security=false;server=ate;database=log4net_test;Connect 
Timeout=30;User ID=sa;Password=sa" />

  +             </appender>

  +             

   

                <!-- Setup the root category, add the appenders and set the 
default level -->

                <root>

  @@ -78,6 +82,9 @@
                        <appender-ref ref="FireEventAppender" />

                        <appender-ref ref="SimpleSmtpAppender" />

                        <appender-ref ref="MsmqAppender" />

  +                     <!--

  +                     <appender-ref ref="FastDbAppender" />

  +                     -->

                </root>

                

        </log4net>

  
  
  
  1.3       +15 -0     
logging-log4net/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/SampleAppendersApp.csproj
  
  Index: SampleAppendersApp.csproj
  ===================================================================
  RCS file: 
/home/cvs/logging-log4net/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/SampleAppendersApp.csproj,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SampleAppendersApp.csproj 15 Nov 2004 02:53:21 -0000      1.2
  +++ SampleAppendersApp.csproj 13 Jun 2005 18:10:34 -0000      1.3
  @@ -84,6 +84,11 @@
                       AssemblyName = "System.Web"

                       HintPath = 
"..\..\..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Web.dll"

                   />

  +                <Reference

  +                    Name = "System.Messaging"

  +                    AssemblyName = "System.Messaging"

  +                    HintPath = 
"..\..\..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Messaging.dll"

  +                />

               </References>

           </Build>

           <Files>

  @@ -109,6 +114,11 @@
                       BuildAction = "Compile"

                   />

                   <File

  +                    RelPath = "Appender\FastDbAppender.cs"

  +                    SubType = "Code"

  +                    BuildAction = "Compile"

  +                />

  +                <File

                       RelPath = "Appender\FireEventAppender.cs"

                       SubType = "Code"

                       BuildAction = "Compile"

  @@ -124,6 +134,11 @@
                       BuildAction = "Compile"

                   />

                   <File

  +                    RelPath = "Appender\MsmqAppender.cs"

  +                    SubType = "Code"

  +                    BuildAction = "Compile"

  +                />

  +                <File

                       RelPath = "Appender\SimpleSmtpAppender.cs"

                       SubType = "Code"

                       BuildAction = "Compile"

  
  
  
  1.1                  
logging-log4net/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender/FastDbAppender.cs
  
  Index: FastDbAppender.cs
  ===================================================================
  #region Copyright & License

  //

  // Copyright 2001-2005 The Apache Software Foundation

  //

  // Licensed under the Apache License, Version 2.0 (the "License");

  // you may not use this file except in compliance with the License.

  // You may obtain a copy of the License at

  //

  // http://www.apache.org/licenses/LICENSE-2.0

  //

  // Unless required by applicable law or agreed to in writing, software

  // distributed under the License is distributed on an "AS IS" BASIS,

  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  // See the License for the specific language governing permissions and

  // limitations under the License.

  //

  #endregion

  

  using System.Data.SqlClient;

  using log4net.Appender;

  using log4net.Core;

  

  namespace SampleAppendersApp.Appender

  {

        public sealed class FastDbAppender : IAppender, IOptionHandler

        {

                private string m_name;

                private string m_connectionString;

                private SqlConnection m_dbConnection;

  

                public string Name

                {

                        get { return m_name; }

                        set { m_name = value; }

                }

  

                public string ConnectionString

                {

                        get { return m_connectionString; }

                        set { m_connectionString = value; }

                }

  

                public void ActivateOptions() 

                {

                        m_dbConnection = new SqlConnection(m_connectionString);

                        m_dbConnection.Open();

                }

  

                public void Close()

                {

                        if (m_dbConnection != null)

                        {

                                m_dbConnection.Close();

                        }

                }

  

                public void DoAppend(LoggingEvent loggingEvent)

                {

                        SqlCommand command = m_dbConnection.CreateCommand();

                        command.CommandText = "INSERT INTO [LogTable] 
([Time],[Logger],[Level],[Thread],[Message]) VALUES 
(@Time,@Logger,@Level,@Thread,@Message)";

  

                        command.Parameters.Add("@Time", loggingEvent.TimeStamp);

                        command.Parameters.Add("@Logger", 
loggingEvent.LoggerName);

                        command.Parameters.Add("@Level", 
loggingEvent.Level.Name);

                        command.Parameters.Add("@Thread", 
loggingEvent.ThreadName);

                        command.Parameters.Add("@Message", 
loggingEvent.RenderedMessage);

  

                        command.ExecuteNonQuery();

                }

        }

  }

  
  
  

Reply via email to