Currently I am using NLog to write my application errors to a text file. How can I configure NLog to write the error messages to Azure Streaming Log apart from writing to a Azure Blob Storage?
To start logging, we need to create a Logger instance. Before creating the Logger instance, we are configuring Nlog by passing the configuration file nlog. config which we are going to create in the next section. The GetCurrentClassLogger() method returns the Logger instance with the name of the current class (Nlog.
NLog is a flexible and free logging platform for various . NET platforms, including . NET standard. NLog makes it easy to write to several targets. (database, file, console) and change the logging configuration on-the-fly.
NLog supports the following levels: Trace - Very detailed log messages, potentially of a high frequency and volume. Debug -Less detailed and/or less frequent debugging messages. Info - Informational messages.
the Azure Streaming Log captures what is sent to the Trace interface. If you configure NLog to send to that target, you can then easily access that through the output window in Visual Studio for instance.
Here is how I configured NLog.config to obtain this result:
<targets> <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message} ${exception:format=tostring}" /> <target xsi:type="Trace" name="trace" layout="${logger} ${message} ${exception:format=tostring}" /> </targets> <rules> <logger name="*" minlevel="Info" writeTo="f" /> <logger name="*" minlevel="Trace" writeTo="trace" /> </rules>
The first target should resemble the one you already have for logging to file, the second simply sends the data to the trace channel.
Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With