Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ElmahCore/ElmahCore
ELMAH for Net.Standard and Net.Core
https://github.com/ElmahCore/ElmahCore
asp-net-core asp-net-core-mvc aspnetcore aspnetcoremvc elmah elmah-core error-handling error-log errors logging mvc mvc-core mvc6 net-core net-core-3 net-core-5 net-core-6 netcore netstandard netstandard20
Last synced: about 1 month ago
JSON representation
ELMAH for Net.Standard and Net.Core
- Host: GitHub
- URL: https://github.com/ElmahCore/ElmahCore
- Owner: ElmahCore
- License: apache-2.0
- Created: 2017-12-07T05:27:59.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-01-15T07:36:55.000Z (5 months ago)
- Last Synced: 2024-03-28T01:02:59.320Z (2 months ago)
- Topics: asp-net-core, asp-net-core-mvc, aspnetcore, aspnetcoremvc, elmah, elmah-core, error-handling, error-log, errors, logging, mvc, mvc-core, mvc6, net-core, net-core-3, net-core-5, net-core-6, netcore, netstandard, netstandard20
- Language: C#
- Homepage:
- Size: 12.8 MB
- Stars: 308
- Watchers: 19
- Forks: 91
- Open Issues: 77
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-dotnet-core - ElmahCore - Error logging library that includes features like error filtering and the ability to view the error log from a web page. (Frameworks, Libraries and Tools / Logging)
- awesome-dotnet-core - ElmahCore - Error logging library that includes features like error filtering and the ability to view the error log from a web page. (Frameworks, Libraries and Tools / Logging)
- awesome-dotnet-core-master - ElmahCore - Error logging library that includes features like error filtering and the ability to view the error log from a web page. (Frameworks, Libraries and Tools / Logging)
- awesome-dotnet-core - ElmahCore - 错误日志库。 (框架, 库和工具 / 日志)
- awesome-dotnet-core - ElmahCore - Error logging library that includes features like error filtering and the ability to view the error log from a web page. (Frameworks, Libraries and Tools / Logging)
- awesome-dotnet-core - ElmahCore - Error logging library that includes features like error filtering and the ability to view the error log from a web page. (Frameworks, Libraries and Tools / Logging)
- awesome-dotnet-core - ElmahCore - Error logging library that includes features like error filtering and the ability to view the error log from a web page. (Frameworks, Libraries and Tools / Logging)
README
This project is licensed under the terms of the Apache license 2.0.
# Using ElmahCore
ELMAH for Net.Standard and Net.Core (3.1, 5, 6)![alt text](https://github.com/ElmahCore/ElmahCore/raw/master/images/elmah-new-ui.png)
Add nuget package **elmahcore**
## Simple usage
Startup.cs
```csharp
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
```csharp
services.AddElmah(options => options.Path = "you_path_here")
```
## Restrict access to the Elmah url
```csharp
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.
```csharp
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](https://www.nuget.org/packages/ElmahCore.Sql))
- MysqlErrorLog - store errors in MySQL (add reference to [ElmahCore.MySql](https://www.nuget.org/packages/ElmahCore.MySql))
- PgsqlErrorLog - store errors in PostgreSQL (add reference to [ElmahCore.Postgresql](https://www.nuget.org/packages/ElmahCore.Postgresql))
```csharp
services.AddElmah(options =>
{
options.LogPath = "~/log"; // OR options.LogPath = "с:\errors";
});
```
```csharp
services.AddElmah(options =>
{
options.ConnectionString = "connection_string";
options.SqlServerDatabaseSchemaName = "Errors"; //Defaults to dbo if not set
options.SqlServerDatabaseTableName = "ElmahError"; //Defaults to ELMAH_Error if not set
});
```
## Raise exception
```csharp
public IActionResult Test()
{
HttpContext.RaiseError(new InvalidOperationException("Test"));
...
}
```
## Microsoft.Extensions.Logging support
Since version 2.0 ElmahCore support Microsoft.Extensions.Logging
![alt text](https://github.com/ElmahCore/ElmahCore/raw/master/images/elmah-log.png)## Source Preview
Since version 2.0.1 ElmahCore support source preview.
Just add paths to source files.
```csharp
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](https://github.com/ElmahCore/ElmahCore/raw/master/images/elmah-4.png)## Logging method parameters
Since version 2.0.6 ElmahCore can log method parameters.
![alt text](https://github.com/ElmahCore/ElmahCore/raw/master/images/elmah-5.png)
```csharp
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
```csharp
if (env.IsDevelopment())
{
//app.UseDeveloperExceptionPage();
app.UseElmahExceptionPage();
}
```## Using Notifiers
You can create your own notifiers by implement IErrorNotifier or IErrorNotifierWithId interface and add notifier to Elmah options:
```csharp
services.AddElmah(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:
```csharp
services.AddElmah(options =>
{
options.FiltersConfig = "elmah.xml";
options.Filters.Add(new MyFilter());
})
```
Custom filter must implement IErrorFilter.
XML filter config example:
```csharp
```
see more [here](https://elmah.github.io/a/error-filtering/examples/)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.## Search And Filters
Since version 2.2.0 tou can use full-text search and multiple filter.
Full-text search work on analyzed text fields.
![alt text](https://github.com/ElmahCore/ElmahCore/raw/master/images/elmah-filters-1.png)
Filters are available through either the **Add filter** button.
![alt text](https://github.com/ElmahCore/ElmahCore/raw/master/images/elmah-filters-2.png)
Or you can use **filter icon** to the right of the error field.
![alt text](https://github.com/ElmahCore/ElmahCore/raw/master/images/elmah-filters-3.png)
Currently supports only Memory and XmlFile error logs.