Serilog logger for Nancy web applications. Handler request, response and exceptions.
PM> Install-Package Nancy.Serilog.Simple
Configure service in statup
// Startup.cs
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddSerilog();
}
Resolve dependency and setup pipelines
// Bootstrapper.cs
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
var jsonSerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
container.Register<JsonSerializerSettings>(jsonSerializerSettings);
container.Register<ICommunicationLogger, CommunicationLogger>().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:
public object Home()
{
this.DisableLogging();
...
}
Additional Property
context.Items["NancySerilogAdditionalInfo"] = new AdditionalInfo
{
Data = new Dictionary<string, object>
{
{ "SomeProperty", "HERE_SOMEPROPERTY" }
}
};
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} {...}
.
Use env var to change default value
SERILOG_ERROR_MESSAGE_MAX_LENGTH
default value 256;SERILOG_ERROR_EXCEPTION_MAX_LENGTH
default value 1024;
Please, refer to CONTRIBUTING
Open a new Issue following our issue template ISSUE_TEMPLATE
See in nuget version history
if you liked this project, please make a contribution and help to keep this and other initiatives, send me some Satochis.
BTC Wallet: 1G535x1rYdMo9CNdTGK3eG6XJddBHdaqfX