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 2005/06/13 20:10:34 UTC

cvs commit: logging-log4net/examples/net/1.0/Appenders/SampleAppendersApp/cs/src/Appender FastDbAppender.cs

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();
  		}
  	}
  }