C# 带有ADOAPENDER的Log4Net,但SQL中没有
我尝试使用log4net记录错误消息,并使用SQL将它们保存到数据库中,但什么也没发生。。。。我错过什么了吗?这是我的密码C# 带有ADOAPENDER的Log4Net,但SQL中没有,c#,sql,logging,log4net,C#,Sql,Logging,Log4net,我尝试使用log4net记录错误消息,并使用SQL将它们保存到数据库中,但什么也没发生。。。。我错过什么了吗?这是我的密码 Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); hierarchy.Root.RemoveAllAppenders(); /*Remove any other appenders*/ log4net.Repository.Hier
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
hierarchy.Root.RemoveAllAppenders(); /*Remove any other appenders*/
log4net.Repository.Hierarchy.Logger rootLogger = hierarchy.Root;
rootLogger.Level = hierarchy.LevelMap["ERROR"];
AdoNetAppender ado = new AdoNetAppender();
ado.ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
ado.ConnectionString = ConfigurationManager.AppSettings["MSSQLConnectionString_nvn1"];
ado.CommandText = "INSERT INTO Log ([Date],[Thread],[Level],[Identity],[Username],[Logger],[Message]) VALUES (@log_date, @thread , @level , @identity , @username , @logger, @message)";
ado.BufferSize = 1;
ado.Threshold = log4net.Core.Level.Error;
AdoNetAppenderParameter logd = new AdoNetAppenderParameter();
logd.ParameterName = "@log_date";
logd.DbType = DbType.DateTime;
logd.Layout = new log4net.Layout.RawTimeStampLayout();
ado.AddParameter(logd);
...........
ado.ActivateOptions();
log4net.Config.BasicConfigurator.Configure(ado);
谢谢
小结:任何人都可以检查我的代码,并尝试给我一些关于如何将错误消息从log4net保存到数据库的建议。在配置文件或代码中将缓冲区大小设置为“1”,因为默认缓冲区大小为512:
<bufferSize value="1" />
那么问题是什么!!我想知道我是否在代码中做了一些错误…:)将此添加到你的app.config:如果你进行调试,你应该会在VS输出窗口中看到一些错误…我建议,首先配置一个基本的appender,比如登录到log.txt文件。一旦工作正常,您将知道您的配置需要更正,或者您使用对象记录日志的方式需要更正。配置看起来很好,若你们可以发布你们在哪里使用过对象和那个些代码,理解它们会很有帮助。还有,您使用的是什么版本的DotNet