asp.net利用log4net写入日志到SqlServer数据库,Log4net是一个开源的错误日志记录项目,易用性强,源自log4j,品质值得信赖。 下面就我的安装部署log4net到MS sql server的经验与大家分享。
下载log4net的Dll文件并引入到项目中,在你的web主项目(比如MainWeb.csproj)添加对log4net.dll的引用,并在相应的Globall.cs文件中的Application_Start 事件中写入
protected void Application_Start(Object sender, EventArgs e) { log4net.Config.XmlConfigurator.Configure( new System.IO.FileInfo( "log4net.config" )); }
在这个项目对应的Assembly.cs文件中添加一行
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config" , Watch = true )]
添加logn4net.confgi在主项目根目录下:与web.config同路径,之所以不写入web,config文件, 是因为这样可以单独修改调试部署,也就是非侵入式安装的思想。
基本完成了!需要注意的一个参数 bufferSize=10 表示是记录10 条到缓冲区,满10条后再写入SQL server,测试时将其改为1,生产环境建议100
CREATE TABLE [dbo].[ErrorLog]( [nId] [bigint] IDENTITY(1,1) NOT NULL, [dtDate] [datetime] NOT NULL, [sThread] [nvarchar](100) NOT NULL, [sLevel] [nvarchar](200) NOT NULL, [sLogger] [nvarchar](500) NOT NULL, [sMessage] [nvarchar](3000) NOT NULL, [sException] [nvarchar](4000) NULL)
调用代码
public static class TestLog4 { private static log4net.ILog myLogger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static void OnReceiveMsg() { myLogger.Debug("系统已记录错误,请联系管理员!"); } }