Я бы рекомендовал использовать log4net.Это очень легко получить.
Во-первых, загрузить log4net .Разархивируйте его и добавьте ссылку на log4net.dll в свой проект.
Создайте базовый конфигурационный файл с именем log4net.config
в корневой папке.Это позволит регистрировать ошибки в файлах журналов, названных по дате, в папке «Журналы» вне корневого веб-каталога.
<?xml version="1.0"?>
<log4net debug="false">
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="DatePattern" value="yyyy-MM-dd'.log'" />
<param name="File" value="..\\Logs\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="30" />
<param name="MaximumFileSize" value="100MB" />
<param name="RollingStyle" value="Date" />
<param name="StaticLogFileName" value="false" />
<param name="CountDirection" value="-1" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="DEBUG" />
</evaluator>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
В файле Properties\AssemblyInfo.cs
добавьте следующую строку.Это автоматически настроит log4net из файла конфигурации при запуске приложения.
[assembly: XmlConfigurator(ConfigFile = "./Log4net.config", Watch = true)]
Чтобы отлавливать ошибки и регистрировать их, вам необходимо добавить следующее к Global.asax.cs
private static readonly ILog m_Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected void Application_Error(object sender, EventArgs e)
{
// Get the error
Exception exception = Server.GetLastError();
// Log the error to a text file
m_Logger.Fatal("Unhandled application error", exception);
// Redirect to error page
Response.Redirect("~/Error.aspx");
}
Есть несколько шагов, необходимых для того, чтобы заставить это работать, но все они довольно просты в выполнении, и как только log4net будет на месте, вы можете легко добавить журналирование в другом месте вашего приложения (вместо того, чтобы регистрировать необработанные исключения).*