Log4net是一个开源的错误日志记录项目,易用性强,源自log4j,品质值得信赖。
下面汇报一下我的安装部署log4net到MS sql server的经验。
一、首先是下载log4net最新版
地址:http://logging.apache.org/log4net/
直接引用dll也行,我是把下载的源码在Vs2005下编译成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
)]
这里有个地方需要注意
如果我的主项目是纯粹的代码分离后的aspx/ascx文件, 不含cs文件,那么中需要在饱含cs文件的项目(比如common.web.csproj)文件中添加这两行代码
举个例子
解决方案如下:
MySolution.Sln
|-----common.Web.csproj(包含cs文件)
|-----Business1.Web.csproj(包含cs文件,继承自common.Web.csproj)
|-----Business********.Web.csproj(包含cs文件,继承自common.Web.csproj)
|-----BusinessX.Web.csproj(包含cs文件,继承自common.Web.csproj)
|-----MainWeb.csproj(不包含cs文件)
此时, 只需要在 common.Web.csproj
中做以上动作就可以了!其他项目只需要引用 dll即可。
第三步:添加logn4net.confgi在主项目根目录下:与web.config同路径,之所以不写入web,config文件, 是因为这样可以单独修改调试部署,也就是非侵入式安装的思想。呵呵。
内容大概如下:
具体的可以看看官方文档
http://logging.apache.org/log4net/release/sdk/index.html
基本完成了!需要注意的一个参数
<bufferSize value="10" />,表示是记录10 条到缓冲区,满10条后再写入SQL server
调试时可以改为1,实际应用建议为100
数据库生成脚本
第四步:
在需要记录的每个类中添加如下代码
给出一个例子
}
记录的样式如下:
<td>2008-11-21 11:03:20.470</td> <td>1904</td> <td>ERROR Agronet.Product.Web.UI.Controls.Vegnet.Detail</td> <td>10.103.33.10</td> <td>System.OverflowException: 值对于 Int16 太大或太小。</td> <td> ---> System.OverflowException: 值对于 Int32 太大或太小。 在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.Int16.Parse(String s, NumberStyles style, NumberFormatInfo info) --- 内部异常堆栈跟踪的结尾 --- 在 System.Int16.Parse(String s, NumberStyles style, NumberFormatInfo info) 在 System.Int16.Parse(String s) 在 Agronet.Product.Web.UI.Controls.Vegnet.Detail.BindList() 位置 P:/Test/Web/UI/Controls/Vegnet/Detail.cs:行号 141</td>
</tr></table>
OK! 结束,
Any Question ,Please Mail to tony(邀月)3w@live.cn
写入文件请看这里
log4net写入日志文件示例
助人等于自助! 3w@live.cn