ELMAH в ASP.NET Core

в 0:00, , рубрики: Песочница

Появился порт 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?}");
         });
    }

Вуаля...

image

Что есть и чего нет?

Есть возможность логировать в 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, но с ним я пока не разобрался.

Посмотрим, на сколько это порт стабилен.

Автор: призывник

Источник

* - обязательные к заполнению поля