在项目开发中,遇到页面在开发机上调试没有问题,但是发布到服务器上以后,网页报错,发布后却又无法调试,于是就在网上查资料,了解到Log4Net可以完成这项工作,就下载了Log4Net.dll,可以到官网上下载,是开源的,我下载的是2.0.8.下载后就按网上步骤一步步操作,可是操作完毕后,发现无法创建日志文件。经过2天的研究。发现主要原因是配置和服务器发布文件夹权限有问题。归纳了一下,希望能帮到大家。
主要步聚:
一、从官方下载;Log4Net.dll文件,我下载的是2.0.8版本
二、将dll文件拷贝到项目文件夹中并在项目中引用
三、修改web.config文件:在<configuration></configuration>
节中添加:
<log4net>
<root>
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="testApp.Logging"><!--注意此名称很重要,页面上在创建日志对象时必须用这个名称,否则是不能写日志的-->
<level value="All"/>
</logger>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="Log/log-file.txt" /><!--此处设置相对路径,这样设置意思就是父路径就是根目录-->
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header] "/>
<param name="Footer" value="[Footer] "/>
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
这其中的关键是:<param name="File" value="Log/log-file.txt" />
,一定要用相对路径来设置value,这里我把Log文件夹放置到了根目录下,所以这样设置,大家可以根据自己情况进行设置。
四、在Global.asax.cs文件中增加代码:
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~")+@"Log/log-file.txt"));
}
五、在AssemblyInfo.cs中头部相应位置加入代码:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
六、在页面cs文件中引用命名空间
using log4net;
在方法中即可调用:
l
log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");<!--注意此名称很重要,在Log4Net的配置节中 <logger name="testApp.Logging">来注明,页面上在创建日志对象时必须用这个名称,否则是不能写日志的-->
log.Info("文件路径:" + Wjlj + ": Page_Load事件");
log.Info("索引值:" + Syz + ": Page_Load事件");
log.Info("表名:" + Bm + ": Page_Load事件");
log.Info("相关信息:" + Glkh_qyry_hphm + ": Page_Load事件");
七、在服务器发布文件夹中设置Log文件夹的权限:
Log文件夹----属性----安全----编辑----添加用户----IISUSERS,设置修改权限,确定即可。
到此为止,使用Log4Net.dll创建网站日志文件成功!这是我花了两天的时间研究出来的,当然也非常感谢网友们的帮助,希望见到帖子的网友,经常写自己的博客,一方面自己积累经经验,另一方面也为后来人提供方便,不要只知道索取而不知道奉献!为发展我们国家的软件开发能力做出自己微薄的贡献!谢谢您的观看!
秋风2019.12.06写于淄博 业务联系与交流合作:QQ:375172665