https://github.com/thiagobarradas/nancy-serilog
Nancy Serilog component for help you log all request/response and exceptions.
https://github.com/thiagobarradas/nancy-serilog
csharp dotnet dotnet-core dotnet-standard log logger nancy nancy-fx nancyfx serilog web
Last synced: 3 months ago
JSON representation
Nancy Serilog component for help you log all request/response and exceptions.
- Host: GitHub
- URL: https://github.com/thiagobarradas/nancy-serilog
- Owner: ThiagoBarradas
- License: mit
- Created: 2018-09-17T20:49:20.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T01:27:54.000Z (over 3 years ago)
- Last Synced: 2024-08-31T19:21:25.195Z (almost 2 years ago)
- Topics: csharp, dotnet, dotnet-core, dotnet-standard, log, logger, nancy, nancy-fx, nancyfx, serilog, web
- Language: C#
- Homepage: https://www.nuget.org/packages/Nancy.Serilog.Simple/
- Size: 55.7 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://barradas.visualstudio.com/Contributions/_build/latest?definitionId=11&branchName=master)
[](https://www.nuget.org/packages/Nancy.Serilog.Simple/)
[](https://www.nuget.org/packages/Nancy.Serilog.Simple/)
[](https://sonarcloud.io/dashboard?id=ThiagoBarradas_nancy-serilog)
[](https://sonarcloud.io/dashboard?id=ThiagoBarradas_nancy-serilog)
# Nancy.Serilog.Simple
Serilog logger for Nancy web applications. Handler request, response and exceptions.
## Install via NuGet
```
PM> Install-Package Nancy.Serilog.Simple
```
# Sample
Configure service in statup
```c#
// Startup.cs
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddSerilog();
}
```
Resolve dependency and setup pipelines
```c#
// Bootstrapper.cs
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
var jsonSerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
container.Register(jsonSerializerSettings);
container.Register().AsSingleton();
base.ConfigureApplicationContainer(container);
}
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
{
// you must setup logger pipeline in application startup
pipelines.AddLogPipelines(container);
}
```
Ready! That way all request/response will be sended to serilog.
You can custom information title / error title and Serilog Logger using NancySerilogConfiguration in constructor. By default, global serilog logger will be used.
You can disable logging on success using DisableSerilogExtension in your action:
```c#
public object Home()
{
this.DisableLogging();
...
}
```
Additional Property
```
context.Items["NancySerilogAdditionalInfo"] = new AdditionalInfo
{
Data = new Dictionary
{
{ "SomeProperty", "HERE_SOMEPROPERTY" }
}
};
```
## Properties
* `RequestBody`
* `Method`
* `Path`
* `Host`
* `Port`
* `Url`
* `QueryString`
* `Query`
* `RequestHeaders`
* `Ip`
* `IsSuccessful`
* `StatusCode`
* `StatusDescription`
* `StatusCodeFamily`
* `ProtocolVersion`
* `ErrorException`
* `ErrorMessage`
* `ResponseContent`
* `ContentType`
* `ContentLength`
* `ResponseHeaders`
* `ElapsedMilliseconds`
* `RequestKey`
You can use this propeties with serilog log context to build log messages. `HTTP {Method} {Path} {...}`.
## Setup global max length for exception properties
Use env var to change default value
- `SERILOG_ERROR_MESSAGE_MAX_LENGTH` default value 256;
- `SERILOG_ERROR_EXCEPTION_MAX_LENGTH` default value 1024;
## How can I contribute?
Please, refer to [CONTRIBUTING](.github/CONTRIBUTING.md)
## Found something strange or need a new feature?
Open a new Issue following our issue template [ISSUE_TEMPLATE](.github/ISSUE_TEMPLATE.md)
## Changelog
See in [nuget version history](https://www.nuget.org/packages/Nancy.Serilog.Simple)
## Did you like it? Please, make a donate :)
if you liked this project, please make a contribution and help to keep this and other initiatives, send me some Satochis.
BTC Wallet: `1G535x1rYdMo9CNdTGK3eG6XJddBHdaqfX`
