无法使log4net为数据库工作

无法使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正常工作,在安装了log4net的一瞥之后,我注意到log4net选项卡变灰了,所以我想我没有正确安装它,但不确定安装在哪里

在my assemblyInfo.cs中,我有:

[程序集: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);但仍然不起作用。我编辑了问题并删除了不需要的类。你最终得到问题的解决方案了吗?不,我一定错过了一些简单的东西,但我看不出它是什么。