NLog can log your app data and create logs regardless of the size and complexity of your application. Credit: Greg Lobinski NLog is an open source logging platform for use in .NET, Xamarin, and even Windows Phone applications. It is free, cross-platform, and easy to configure and extend. NLog is a great logging platform that is simple and comes with excellent support for log routing and management capabilities, making it a good choice when you have to choose a logging framework that is highly performant. Install NLog First, you should download a copy of NLog. Alternatively, you can install NLog using the NuGet Package Manager. To do this, all you need to do is create a project in Visual Studio, right-click on the project in the Solution Explorer window, and then select the “Manage NuGet Packages…” option. Next, you can select NLog.Config as the package you would want to install from the NuGet Package Manager window. Or you can also install NLog using the Package Manager Console. Type the following command into the Package Manager Console and press enter. Install-Package NLog.Config To get started using NLog in Visual Studio 2015, you can install the NLog.Config package. When you install this package, its related dependencies including NLog and NLog.Schema will also be installed, and the NLog.dll assembly will be added to your project. You will also see two files added to your project, one named NLog.config and one named NLog.xsd. NLog log levels NLog provides support for the following log levels: Trace Debug Info Warn Error Fatal NLog setup You‘ll first need to set up the name and path of the log file in the NLog.config file. Here is how you can do this: <variable name="logFilePath" value="D:NLogIDG.log" /> If you want to create a log file every day, you could specify the following in the variable tag instead: <variable name="logFilePath" value="D:NLogIDG-${shortdate}.log" /> Specify a log target in NLog Once the log file name and path have been specified, you should specify a log target. This can be done using the target tag in the NLog.config file: <targets> <target name="logfile" xsi:type="File" fileName="${logFilePath}" layout="${longdate} LEVEL=${level:upperCase=true}: ${message}" keepFileOpen="true" /> </targets> Note that you can create multiple targets inside the targets tag. You can also take advantage of rules to let NLog know where a particular log entry should be logged, whether in a file, a database, an event log, etc. <rules> <logger name="*" minlevel="Info" writeTo="logfile" /> <logger name="*" minlevel="Warn" writeTo="file"/> </rules> Create a logger in NLog You can create a logger per class using the LogManager class in the NLog library. Here is how you can do it: namespace Sample { public class Test { private static Logger logger = LogManager.GetCurrentClassLogger(); } } If you would like to retrieve a particular logger, you can take advantage of the GetLogger method of the LogManager class as shown below. using NLog; Logger logger = LogManager.GetLogger("SpecifyTheClassNameHere"); Simple NLog example in .NET Here is the complete program for your reference that illustrates how NLog can be used to log data at different levels. using NLog; using System; namespace IDGNLog { class Program { private static Logger logger = LogManager.GetCurrentClassLogger(); static void Main(string[] args) { logger.Trace("This is a trace message"); logger.Debug("This is a debug message"); logger.Info("This is an informational message"); logger.Warn("This is a warning message"); logger.Error("This is an error message"); logger.Fatal("This is a fatal message"); Console.ReadKey(); } } } Related content feature What is Rust? Safe, fast, and easy software development Unlike most programming languages, Rust doesn't make you choose between speed, safety, and ease of use. Find out how Rust delivers better code with fewer compromises, and a few downsides to consider before learning Rust. By Serdar Yegulalp Nov 20, 2024 11 mins Rust Programming Languages Software Development how-to Kotlin for Java developers: Classes and coroutines Kotlin was designed to bring more flexibility and flow to programming in the JVM. Here's an in-depth look at how Kotlin makes working with classes and objects easier and introduces coroutines to modernize concurrency. By Matthew Tyson Nov 20, 2024 9 mins Java Kotlin Programming Languages analysis Azure AI Foundry tools for changes in AI applications Microsoft’s launch of Azure AI Foundry at Ignite 2024 signals a welcome shift from chatbots to agents and to using AI for business process automation. By Simon Bisson Nov 20, 2024 7 mins Microsoft Azure Generative AI Development Tools news Microsoft unveils imaging APIs for Windows Copilot Runtime Generative AI-backed APIs will allow developers to build image super resolution, image segmentation, object erase, and OCR capabilities into Windows applications. By Paul Krill Nov 19, 2024 2 mins Generative AI APIs Development Libraries and Frameworks Resources Videos