Pull to refresh

ELMAH в ASP.NET Core

.NET *ASP *
Awaiting invitation

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


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

Tags:
Hubs:
You can’t comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.