本文主要说明一下两点内容
-
-
添加配置文件
-
引入命名空间 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>