Support & Documentation
Follow

Logs: .NET Core

 

Step 1: Add StackifyLib nuget package and basic configuration

No matter which logging framework you are using, you need to add StackifyLib and add the Stackify.ApiKey to your config file.

How to set configuration settings

Because .NET core allows a wide variety of configuration options, how you configure the key could vary wildly. This is just one example of how to do it with the standard appsettings.json file. 

 
{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "None",
      "System": "None",
      "Microsoft": "None",
      "Microsoft.AspNetCore.Mvc.Internal":  "None" 
    }
  },
  "Stackify": {
    "ApiKey": "your key goes here",
    "AppName": "CoreWebApp", //optional
    "Environment": "Dev" //optional
  }
}

If you are using ASP.NET:

For ASP.NET you also want to add an additional StackifyLib.AspNetCore nuget package. It enables capturing web request details for exceptions. It is not required, but highly recommended.

In your Startup.cs Configure() event you need to add 1 line of code as shown here. This assumes that in the Startup constructor method you are also creating your configuration object.

using StackifyLib;
...
public IConfigurationRoot Configuration { get; } public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); StackifyLib.Config.Environment = env.EnvironmentName; //optional } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.ConfigureStackifyLogging(Configuration); //This is critical!! app.UseMvc(); }

 

If you are using a console app:

There is no Startup class like there is for ASP.NET and we aren't worried about collecting web request details. So the configuration is slightly different and there is no need for the extra nuget package.

var builder = new ConfigurationBuilder()
	.SetBasePath(env.ContentRootPath)
	.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
	.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
	.AddEnvironmentVariables();

Configuration = builder.Build();
Configuration.ConfigureStackifyLogging(); //This applies the settings

Step 2: Add your logging provider library

Standard logging libraries

Stackify supports the standard third party libraries: log4net, NLog, Serilog

For all of these there is a corresponding nuget package required to setup the logging appender/target/provider. 

Please review these related docs for how to install and configure them. Please note that any reference in them to configure the Stackify.ApiKey and such is specific to non .NET Core, that part needs to be done as mentioned here.

Errors And Logs With Log4net

Errors And Logs With NLog

Stackify Serilog

New .NET Core Logging API

For .NET Core you can also use the new logging API that is based around ILoggerFactory. We would recommend also checking out this blog post on the topic: .NET Core LoggerFactory: How to use it correctly and lots of tips!

NOTE: If you are using one of the standard third party libraries, there is no reason to do this also!

Install the nuget package called StackifyLib.CoreLogger and modify your Startup class to register the provider. For an ASP.NET app you also still need the StackifyLib.AspNetCore package as well.

 
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
	loggerFactory.AddStackify(); //add the provider

	app.ConfigureStackifyLogging(Configuration); //configure settings and ASP.NET exception hooks

	app.UseMvc();
}

Step 3: Log some stuff!

 

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk