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