Я пытался записать ошибку на своем веб-сайте .Net в базу данных SQL с помощью Log4Net AdoNetAppender, но сообщение об ошибке не регистрируется в базе данных.Похоже, AdoNetAppender не включается и не читает.При отладке я заметил, что Logger.Log показывает все значения своих свойств как false.т.е. IsErrorEnabled / IsDebugEnabled / IsFatalEnabled / IsInfoEnabled / IsWarnEnabled все как ложные.
Используемая версия log4net.dll: 2.0.8.0
Нажмите здесь, чтобы посмотреть изображение свойств объекта
Код logging.cs следующий:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Utility.Library
{
public class Logging
{
public static class Logger
{
public static ILog Log = LogManager.GetLogger(typeof(SharedMethods));
}
public static class LogException
{
private static StringBuilder sessionJobLogBuilder = new StringBuilder();
public static void LogError(string sMsg, Exception ex)
{
Logger.Log.Error(sMsg, ex);
sessionJobLogBuilder.AppendLine(sMsg + Environment.NewLine);
sessionJobLogBuilder.AppendLine(ex.ToString() + Environment.NewLine);
}
public static void LogInfo(string sMsg)
{
Logger.Log.Info(sMsg);
sessionJobLogBuilder.AppendLine(sMsg + Environment.NewLine);
}
}
}
}
И ниже app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection,
System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=xxx\xxx;
initial catalog=xxx;integrated security=false;
persist security info=True;User ID=xxx;Password=xxx" />
<commandText value="EXECUTE [dbo].[WriteLogEntry] @App, @Module, @Ver, @Computer, @UserID, @Level, @Message, @Exception" />
<parameter>
<parameterName value="@App" />
<dbType value="String" />
<size value="30" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%App" />
</layout>
</parameter>
<parameter>
<parameterName value="@Module" />
<dbType value="String" />
<size value="200" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%Module" />
</layout>
</parameter>
<parameter>
<parameterName value="@Ver" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%Ver" />
</layout>
</parameter>
<parameter>
<parameterName value="@Computer" />
<dbType value="String" />
<size value="15" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%Computer" />
</layout>
</parameter>
<parameter>
<parameterName value="@UserID" />
<dbType value="String" />
<size value="30" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%UserID" />
</layout>
</parameter>
<parameter>
<parameterName value="@Level" />
<dbType value="Int32" />
<layout type="log4net.Layout.PatternLayout" />
</parameter>
<parameter>
<parameterName value="@Message" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%Message" />
</layout>
</parameter>
<parameter>
<parameterName value="@Exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="AdoNetAppender"/>
</root>
</log4net>
</configuration>
Но свойства Logger.Log на всех уровнях отображаются как ложные.