Появился порт ELMAH для ASP.NET Core: здесь
Как его использовать?
1) Установил NUGET пакет ElmahCore
2) Изменил Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//Добавил
services.AddElmah();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Error");
}
//Добавил
app.UseElmah();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
}
Вуаля...
Что есть и чего нет?
Есть возможность логировать в XML и MSSQL:
Пример XML:
//Логирование в XML файлы в папку logs
services.AddElmah<XmlFileErrorLog>(o => o.LogPath = "~/logs");
Пример MSSQL:
//Логирование в MSSQL
services.AddElmah<SqlErrorLog>(o => o.ConnectionString = "моя_строка_подключения");
Можно установить адрес по которому будет доступен Elmah:
services.AddElmah<SqlErrorLog>(o =>
{
//Изменяем url к Elmah
o.Path = "myerrors";
o.ConnectionString = "моя_строка_подключения";
});
Можно использовать декоративные фильтры, как описано здесь, но размещать их нужно в отдельном XML файле, путь к которому задается так:
services.AddElmah<SqlErrorLog>(o =>
{
//Изменяем url к Elmah
o.Path = "myerrors";
o.FiltersConfig = "elmah.xml";
});
Нет поддержки JavaScript в декоративных фильтрах.
Добавили уведомителей (Notifiers), видимо, вместо ErrorEmailModule и TwitterEmailModule, но с ним я пока не разобрался.
Посмотрим, на сколько это порт стабилен.
Автор: призывник