C#使用Log4Net写入日志文件和写入到数据库
本文主要说明一下两点内容
-
-
添加配置文件
-
引入命名空间 using log4net; using log4net.Config;
-
读取配置文件
XmlConfigurator.Configure(); 默认去读取配置文件如 App.conifg 或 Web.config
-
获取ILog接口
ILog ilog=LogManager.GetLogger(typeof()); 或者 LogManager.GetLogger("字符串类型");
-

log4net.Config.XmlConfigurator.Configure(new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"LogFig.config")));

CREATE TABLE [dbo].[LogDetails]( [LogID] [int] IDENTITY(1,1) NOT NULL, [LogDate] [datetime] NOT NULL, [LogLevel] [nvarchar](20) NOT NULL, [Thread] [nvarchar](20) NOT NULL, [Logger] [nvarchar](20) NOT NULL, [Exception] [nvarchar](3000) NULL, [Message] [nvarchar](3000) NULL )
2.配置log4net文件,用于写入到数据库
<log4net>
<!--name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是指定使用哪种介质 写入到数据库-->
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<!--日志数据库连接字符串-->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!--数据库连接字符串-->
<connectionString value="Data Source=.;Initial Catalog=Test;Integrated Security=True" />
<!--日志数据库脚本-->
<commandText value="INSERT INTO LogDetails ([LogDate],[LogLevel],[Thread],[Logger],[Exception],[Message]) VALUES
(@logdate,@loglevel,@thread,@logger,@exception,@message)" />
<!--日志时间参数-->
<parameter>
<!--参数名称-->
<parameterName value="@logdate" />
<!--数据类型-->
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<!--线程号-->
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%t" />
</layout>
</parameter
<!--日志等级-->
<parameter>
<parameterName value="@loglevel" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%p" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<!--日志异常-->
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
<!--日志信息-->
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<root>
<!--如果存在两个及以上<appender>元素,比如说一个是写文本日志,一个是写数据库日志,那么我们可以用以下元素指定使用哪个appender元素,元素ref属性中的值来appender属性中的name值-->
<appender-ref ref="AdoNetAppender" />
</root>
</log4net>
每天进步一点点









浙公网安备 33010602011771号