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