All Projects → ElmahCore → Elmahcore

ElmahCore / Elmahcore

Licence: apache-2.0
ELMAH for Net.Standard and Net.Core

Projects that are alternatives of or similar to Elmahcore

XAF Security E4908
This repository contains examples for Role-based Access Control, Permission Management, and OData / Web / REST API Services for Entity Framework and XPO ORM
Stars: ✭ 47 (-62.99%)
Mutual labels:  mvc, aspnetcore, netcore, asp-net-core, asp-net-core-mvc
Simplcommerce
A simple, cross platform, modularized ecommerce system built on .NET Core
Stars: ✭ 3,474 (+2635.43%)
Mutual labels:  asp-net-core, aspnetcore, netcore, net-core
PersianDataAnnotations
PersianDataAnnotations is ASP.NET Core MVC & ASP.NET MVC Custom Localization DataAnnotations (Localized MVC Errors) for Persian(Farsi) language - فارسی سازی خطاهای اعتبارسنجی توکار ام.وی.سی. و کور.ام.وی.سی. برای نمایش اعتبار سنجی سمت کلاینت
Stars: ✭ 38 (-70.08%)
Mutual labels:  mvc, aspnetcore, asp-net-core, asp-net-core-mvc
X.pagedlist
Library for easily paging through any IEnumerable/IQueryable in ASP.NET/ASP.NET Core
Stars: ✭ 625 (+392.13%)
Mutual labels:  asp-net-core, asp-net-core-mvc, net-core, mvc
Awesome-Nuget-Packages
📦 A collection of awesome and top .NET packages sorted by most popular needs.
Stars: ✭ 87 (-31.5%)
Mutual labels:  aspnetcore, netcore, asp-net-core, asp-net-core-mvc
Home
Asp.net core Mvc Controls Toolkit
Stars: ✭ 33 (-74.02%)
Mutual labels:  aspnetcore, asp-net-core, asp-net-core-mvc
SignalR-Core-SqlTableDependency
Shows how the new SignalR Core works with hubs and sockets, also how it can integrate with SqlTableDependency API.
Stars: ✭ 36 (-71.65%)
Mutual labels:  aspnetcore, netcore, asp-net-core
Cosmos.Identity
A Cosmos storage provider for ASP.NET Core Identity.
Stars: ✭ 26 (-79.53%)
Mutual labels:  aspnetcore, netcore, netstandard
AspNetCore-ReCAPTCHAv3
reCAPTCHA v3 Usage in Asp.Net Core MVC
Stars: ✭ 17 (-86.61%)
Mutual labels:  mvc, aspnetcore, asp-net-core
DNZ.MvcComponents
A set of useful UI-Components (HtmlHelper) for ASP.NET Core MVC based-on Popular JavaScript Plugins (Experimental project).
Stars: ✭ 25 (-80.31%)
Mutual labels:  aspnetcore, asp-net-core, asp-net-core-mvc
awesome-dotnet-async
A curated list of awesome articles and resources to learning and practicing about async, threading, and channels in .Net platform. 😉
Stars: ✭ 84 (-33.86%)
Mutual labels:  aspnetcore, netcore, asp-net-core
Mytested.aspnetcore.mvc
Fluent testing library for ASP.NET Core MVC.
Stars: ✭ 1,358 (+969.29%)
Mutual labels:  asp-net-core, asp-net-core-mvc, mvc
AspNetCore.Mvc.FluentActions
Fluent Actions for ASP.NET Core MVC are abstractions of regular MVC actions that are converted into MVC actions during startup.
Stars: ✭ 17 (-86.61%)
Mutual labels:  aspnetcore, asp-net-core, asp-net-core-mvc
Ext.NET
Ext.NET public Issues.
Stars: ✭ 28 (-77.95%)
Mutual labels:  aspnetcore, asp-net-core, asp-net-core-mvc
Gitserver
ASP.NET Core Git HTTP Server
Stars: ✭ 98 (-22.83%)
Mutual labels:  asp-net-core, aspnetcore, netcore
jQuery-datatable-server-side-net-core
A simple Visual Studio solution using jQuery DataTable with Server-Side processing using .NET 5
Stars: ✭ 71 (-44.09%)
Mutual labels:  asp-net-core, asp-net-core-mvc, net-core
Netcorebbs
ASP.NET Core Light forum NETCoreBBS
Stars: ✭ 483 (+280.31%)
Mutual labels:  asp-net-core, aspnetcore, netcore
Equinoxproject
Full ASP.NET Core 5 application with DDD, CQRS and Event Sourcing concepts
Stars: ✭ 5,120 (+3931.5%)
Mutual labels:  asp-net-core, aspnetcore, asp-net-core-mvc
AspNetCoreMvcAngular
ASP.NET Core MVC with angular in MVC View OpenID Connect Hybrid Flow
Stars: ✭ 54 (-57.48%)
Mutual labels:  mvc, aspnetcore, asp-net-core
Znetcs.aspnetcore.authentication.basic
A simple basic authentication middleware.
Stars: ✭ 40 (-68.5%)
Mutual labels:  asp-net-core, aspnetcore, asp-net-core-mvc

This project is licensed under the terms of the Apache license 2.0.

Using ElmahCore

ELMAH for Net.Standard and Net.Core

alt text

Add nuget package elmahcore

Simple usage

Startup.cs

1)	services.AddElmah() in ConfigureServices 
2)	app.UseElmah(); in Configure

app.UseElmah() must be after initializing other exception handling middleware, such as (UseExceptionHandler, UseDeveloperExceptionPage, etc.)

Default elmah path ~/elmah.

Change URL path

services.AddElmah(options => options.Path = "you_path_here")

Restrict access to the Elmah url

services.AddElmah(options =>
{
        options.OnPermissionCheck = context => context.User.Identity.IsAuthenticated;
});

Note: app.UseElmah(); needs to be after

app.UseAuthentication();
app.UseAuthorization();
app.UseElmah();

or the user will be redirected to the sign in screen even if he is authenticated.

Change Error Log type

You can create your own error log, which will store errors anywhere.

    class MyErrorLog: ErrorLog
    //implement ErrorLog

This ErrorLogs available in board:

  • MemoryErrorLog – store errors in memory (by default)
  • XmlFileErrorLog – store errors in XML files
  • SqlErrorLog - store errors in MS SQL (add reference to ElmahCore.Sql)
  • MysqlErrorLog - store errors in MySQL (add reference to ElmahCore.MySql)
  • PgsqlErrorLog - store errors in PostgreSQL (add reference to ElmahCore.Postgresql)
services.AddElmah<XmlFileErrorLog>(options =>
{
    options.LogPath = "~/log"; // OR options.LogPath = "с:\errors";
});
services.AddElmah<SqlErrorLog>(options =>
{
    options.ConnectionString = "connection_string";
});

Rise exception

public IActionResult Test()
{
    HttpContext.RiseError(new InvalidOperationException("Test"));
    ...
}

Microsoft.Extensions.Logging support

Since version 2.0 ElmahCore support Microsoft.Extensions.Logging alt text

Source Preview

Since version 2.0.1 ElmahCore support source preview. Just add paths to source files.

services.AddElmah(options =>
{
   options.SourcePaths = new []
   {
      @"D:\tmp\ElmahCore.DemoCore3",
      @"D:\tmp\ElmahCore.Mvc",
      @"D:\tmp\ElmahCore"
   };
});

Log the request body

Since version 2.0.5 ElmahCore can log the request body.

Logging SQL request body

Since version 2.0.6 ElmahCore can log the SQL request body. alt text

Logging method parameters

Since version 2.0.6 ElmahCore can log method parameters. alt text

using ElmahCore;
...

public void TestMethod(string p1, int p2)
{
    // Logging method parameters
    this.LogParams((nameof(p1), p1), (nameof(p2), p2));
    ...
}

Using UseElmahExceptionPage

You can replace UseDeveloperExceptionPage to UseElmahExceptionPage

if (env.IsDevelopment())
{
   //app.UseDeveloperExceptionPage();
   app.UseElmahExceptionPage();
}

Using Notifiers

You can create your own notifiers by implement IErrorNotifier interface and add notifier to Elmah options:

services.AddElmah<XmlFileErrorLog>(options =>
{
    options.Path = @"errors";
    options.LogPath = "~/logs";
    options.Notifiers.Add(new ErrorMailNotifier("Email",emailOptions));
});

Each notifier must have unique name.

Using Filters

You can use Elmah XML filter configuration in separate file, create and add custom filters:

services.AddElmah<XmlFileErrorLog>(options =>
{
    options.FiltersConfig = "elmah.xml";
    options.Filters.Add(new MyFilter());
})

Custom filter must implement IErrorFilter. XML filter config example:

<?xml version="1.0" encoding="utf-8" ?>
<elmah>
	<errorFilter>
		<notifiers>
			<notifier name="Email"/>
		</notifiers>
		<test>
			<and>
				<greater binding="HttpStatusCode" value="399" type="Int32" />
				<lesser  binding="HttpStatusCode" value="500" type="Int32" />
			</and> 
		</test>
	</errorFilter>
</elmah>

see more here

JavaScript filters not yet impemented :(

Add notifiers to errorFilter node if you do not want to send notifications Filtered errors will be logged, but will not be sent.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].