.NET Core 2.x¶
These steps describe how to install and configure KissLog for a .NET Core 2.x application.
Install NuGet Package
Package Manager Console¶
PM> Install-Package KissLog.AspNetCore
Update appsettings.json
appsettings.json¶
{
"Logging": {
"LogLevel": {
"Default": "Trace",
"Microsoft": "Information"
}
},
"KissLog.OrganizationId": "_OrganizationId_",
"KissLog.ApplicationId": "_ApplicationId_",
"KissLog.ApiUrl": "https://api.kisslog.net"
}
Update Startup.cs
Startup.cs¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | using KissLog;
using KissLog.AspNetCore;
using KissLog.CloudListeners.Auth;
using KissLog.CloudListeners.RequestLogsListener;
namespace MyApp.NetCore20
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddScoped<ILogger>((context) =>
{
return Logger.Factory.Get();
});
services.AddLogging(logging =>
{
logging.AddKissLog();
});
services.AddSession();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseAuthentication()
app.UseSession()
app.UseKissLogMiddleware(options => {
ConfigureKissLog(options);
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
private void ConfigureKissLog(IOptionsBuilder options)
{
// optional KissLog configuration
options.Options
.AppendExceptionDetails((Exception ex) =>
{
StringBuilder sb = new StringBuilder();
if (ex is System.NullReferenceException nullRefException)
{
sb.AppendLine("Important: check for null references");
}
return sb.ToString();
});
// KissLog internal logs
options.InternalLog = (message) =>
{
Debug.WriteLine(message);
};
// register logs output
RegisterKissLogListeners(options);
}
private void RegisterKissLogListeners(IOptionsBuilder options)
{
// multiple listeners can be registered using options.Listeners.Add() method
// add KissLog.net cloud listener
options.Listeners.Add(new RequestLogsApiListener(new Application(
Configuration["KissLog.OrganizationId"],
Configuration["KissLog.ApplicationId"])
)
{
ApiUrl = Configuration["KissLog.ApiUrl"]
});
}
}
}
|
Write logs:
using ILogger<HomeController>
HomeController.cs¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using Microsoft.Extensions.Logging;
namespace MyApp.NetCore20.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("Hello world from KissLog!");
_logger.LogTrace("Trace message");
_logger.LogDebug("Debug message");
_logger.LogInformation("Info message");
_logger.LogWarning("Warning message");
_logger.LogError("Error message");
_logger.LogCritical("Critical message");
return View();
}
}
}
|
or using KissLog.ILogger
HomeController.cs¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using KissLog;
namespace MyApp.NetCore20.Controllers
{
public class HomeController : Controller
{
private readonly ILogger _logger;
public HomeController(ILogger logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.Info("Hello world from KissLog!");
_logger.Trace("Trace message");
_logger.Debug("Debug message");
_logger.Info("Info message");
_logger.Warn("Warning message");
_logger.Error("Error message");
_logger.Critical("Critical message");
return View();
}
}
}
|

AspNetCore 2.x¶