无法使log4net为数据库工作
我无法让log4net正常工作,在安装了log4net的一瞥之后,我注意到log4net选项卡变灰了,所以我想我没有正确安装它,但不确定安装在哪里 在my assemblyInfo.cs中,我有:无法使log4net为数据库工作,log4net,Log4net,我无法让log4net正常工作,在安装了log4net的一瞥之后,我注意到log4net选项卡变灰了,所以我想我没有正确安装它,但不确定安装在哪里 在my assemblyInfo.cs中,我有: [程序集:log4net.Config.XmlConfigurator(ConfigFile=“log4net.Config”,Watch=true)] 可能没有必要,但在Global.asax.cs中,我有: var logConfigFilePath=Server.MapPath(“~/log4
[程序集:log4net.Config.XmlConfigurator(ConfigFile=“log4net.Config”,Watch=true)]
可能没有必要,但在Global.asax.cs中,我有:
var logConfigFilePath=Server.MapPath(“~/log4net.config”);
log4net.Config.XmlConfigurator.ConfigureAndWatch(新文件信息(logConfigFilePath));
在我的log4net.config中,我有:
?xml version=“1.0”>
我在这里获得记录器:
private static readonly log4net.ILog日志=
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
我在代码中调用日志,如下所示:
log.Info(string.Format(“用户{0}登录。”,model.UserName));
在我创建标准Log4Net表的数据库中没有显示任何内容。那么我遗漏了什么呢?您确实声明了appender,但是
log4net
并没有实际使用它
根据您的配置文件,您告诉log4net
使用名为RollingFileAppender
的appender(也就是说,没有定义)
更改此项:
致:
最后请注意这一部分:
根据上一行,除非您使用Fatal
level:
log.Fatal(string.Format(“用户{0}登录。”,model.UserName));
或将默认日志级别更改为调试:
缓冲区大小可能是100,因此您没有达到允许log4net写入Db的缓冲区限制。将其更改为1以进行测试
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="100" />
您还可以通过打开Internal.Debug=true来查看Adoappender是否抛出任何错误
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
我通常会遇到SQL不正确或连接字符串不正确的问题。您的
Log4NetLogger
类完全无用,会丢失类信息。直接使用log4net,我将其替换为私有静态只读log4net.ILog log=log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);但仍然不起作用。我编辑了问题并删除了不需要的类。你最终得到问题的解决方案了吗?不,我一定错过了一些简单的东西,但我看不出它是什么。