Я делал это ранее. Я нашел код для использования, копая хотя исходный код, начиная с ErrorSignal.FromCurrentContext (). Raise (ex); способ.
В настоящее время это только входит в базу данных (как это все, что мне нужно), но с немного большим исследованием вы можете написать метод-обертку, который регистрирует все, что вы настроили в файле конфигурации.
try
{
Elmah.SqlErrorLog ErrorLog = new Elmah.SqlErrorLog(ConfigurationManager.ConnectionStrings["Default"].ConnectionString);
ErrorLog.ApplicationName = "AppName";
ErrorLog.Log(new Elmah.Error(new Exception("example")));
}
catch (Exception ex)
{
//catch sql error
}
В своем сервисе я сделал переменную ErrorLog общедоступным одноэлементным объектом, к которому легко получить доступ из проекта сервиса.