Элма великолепен и делает хорошую работу.Вы также можете использовать log4net для регистрации исключений.Все, что вам нужно сделать, это добавить метод application_error в global.asax, и вы сможете отслеживать все возникающие ошибки.Вы также можете добавлять различные приложения и регистрировать сообщения в файле журнала, базе данных и отправлять их по электронной почте.
Вот код, который регистрирует ошибку и включает в себя некоторую дополнительную информацию, такую как url и текущий элемент sitecore:
private static readonly ILog log = LogManager.GetLogger(typeof(Global));
protected void Application_Error(object sender, EventArgs e)
{
if (Context != null)
{
Exception error = Context.Server.GetLastError().GetBaseException();
log.Fatal(
GetErrorMessage(), error);
}
}
private string GetErrorMessage()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Application_Error: Unhandled exception has been occured.");
try
{
sb.AppendLine("Current Request: " + Context.Request.RawUrl);
Sitecore.Data.Items.Item currentItem = Sitecore.Context.Item;
if (currentItem != null)
sb.AppendLine(String.Format("Current Item ({0}): {1}", currentItem.ID, currentItem.Paths.FullPath));
if (Sitecore.Context.Database != null)
sb.AppendLine("Current Database: " + Sitecore.Context.Database.Name);
}
catch { } // in no way should we prevent the site from logging the error
return sb.ToString();
}
Если вы хотите простое решение, я бы порекомендовал пойти с Elmah.Если вы хотите иметь больше контроля и больше возможностей ведения журналов, вам следует использовать собственное решение для log4net.