其他部分和log4net使用的一样,这边贴出ADONetAppender的appender节
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="10" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data,Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=.;initial catalog=LogSystem;integratedsecurity=false;persist security info=True;User ID=sa;Password=sa" />
<commandText value="INSERT INTO ErrorLog ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@date, @thread, @level, @logger, @message, @exception)" />
<parameter>
<parameterName value="@date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="100" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%t" />
</layout>
</parameter>
<parameter>
<parameterName value="@level" />
<dbType value="String" />
<size value="200" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%p" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="500" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="3000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
在对应的数据库中创建表
CREATE TABLE [dbo].[ErrorLog](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Date] [datetime] NOT NULL,
[Thread] [nvarchar](100) NOT NULL,
[Level] [nvarchar](200) NOT NULL,
[Logger] [nvarchar](500) NOT NULL,
[Message] [nvarchar](3000) NOT NULL,
[Exception] [nvarchar](4000) NULL)
static void Main(string[] args)
{
log4net.ILog log=log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器
string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
DirectoryInfo pathInfo = new DirectoryInfo(assemblyDirPath);
string configFilePath = pathInfo.Parent.Parent.FullName + "//log4net.config";
Console.WriteLine(configFilePath);
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(configFilePath));
log.Debug("开始调试");
log.Info("这是一个消息");
log.Warn("这是一个警告");
log.Error("Error", new Exception("这是一个异常"));
Console.ReadKey();
}
运行之后结果
查询结果.png
网友评论