C# Log4Net-在单个Web窗体上使用

C# Log4Net-在单个Web窗体上使用,c#,asp.net,log4net,C#,Asp.net,Log4net,我在单个aspx页面上使用Log4Net-我的意思是该页面没有web.config,取决于默认的machine.config设置。我正在尝试使用数据库日志记录,但没有记录任何内容。我在调试代码时没有看到异常。我用winform应用程序也试过了,但仍然不起作用。任何提示都将不胜感激 这是我的代码和配置文件: 独立配置文件不需要configSections节点: <?xml version="1.0" encoding="utf-8" ?> <log4net> ...

我在单个aspx页面上使用Log4Net-我的意思是该页面没有web.config,取决于默认的machine.config设置。我正在尝试使用数据库日志记录,但没有记录任何内容。我在调试代码时没有看到异常。我用winform应用程序也试过了,但仍然不起作用。任何提示都将不胜感激

这是我的代码和配置文件:



独立配置文件不需要
configSections
节点:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
   ...
</log4net>

您是否更改了连接字符串?:)


检查你的伐木工人Appender是一个ADONetAppender。如果没有,这意味着上一次调用(配置)没有找到您的配置文件。

我让它工作了。问题在于最后一个参数-在DB中,该列的数据类型为“text”,启用跟踪时出现异常:

log4net:错误[AdoNetAppender]无法准备数据库命令[插入到[tblLogs]([TimeOccurrent],[calltype],[severity],[message])值(@TimeOccurrent,@calltype,@severity,@message)] System.InvalidOperationException:SqlCommand.Prepare方法要求所有可变长度参数具有显式设置的非零大小

最后,我更改了参数定义并显式地提供了大小,它成功了



谢谢champs们的指点…

请确认,您粘贴在Log4Net.config文件中的配置是否正确?如果是,您应该检查它是否存在(因为log4net不会抱怨),您是否尝试了滚动文件追加器以确保正确配置log4net。让它使用滚动文件追加器,然后尝试db配置。然后尝试sql探查器,查看它试图执行的sql。检查SQL Server日志。将buffersize设置为1,消息很可能已缓冲,但从未写入测试中的数据库。如果消息仍不工作,请打开内部调试:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
   ...
</log4net>
log = log4net.LogManager.GetLogger(typeof(YourClass));
<connectionString value="XXX/>
var loggers = log4net.LogManager.GetCurrentLoggers();