I am using NLog for logging purpose.
My code is as follows:
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- make sure to set 'Copy To Output Directory' option for this file --> <!-- go to http://nlog-project.org/wiki/Configuration_file for more information --> <targets> <target name="logfile" xsi:type="File" layout="${message}" fileName="${basedir}../Data/debugLog1.txt" archiveAboveSize ="5000000" maxArchiveFiles="2"/> </targets> <rules> <logger name="*" minlevel="Trace" writeTo="logfile" /> </rules> </nlog>
I am logging data in debugLog1.txt
. Now, from another location in the project, I also want to log data, but this data is of another type so I want to make a debugLog2.txt
and log data to it. How can I modify my code above to do so?
Create a Console Application project in Visual Studio. Install NLog and its dependencies. Create and configure the NLog logger. Integrate the logger into the C# Console Application.
NLog 1.0 supports asynchronous logging, but there is no good support for asynchronous exception handling. This is because wrappers targets are not capable of receiving exceptions which are raised on other threads.
By default, the web. nlog file can be found at: C:\Program Files (x86)\Pleasant Solutions\Pleasant Password Server\www\web. 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.
I think you need to define another logger.
<logger name="SpecialLogger" minlevel="Trace" writeTo="logfile2" />
To log to it:
var logger = LogManager.GetLogger("SpecialLogger");
If you want a separate file to log information from another part of your program, you can add a logger and another target.
For example, if you have a program that is completing two different tasks and you want to log those tasks separately, you could do the following
<targets> <target name="task1File" xsi:type="File" layout="${message}" fileName="${basedir}../Data/debugLog1.txt" archiveAboveSize ="5000000" maxArchiveFiles="2"/> <target name="task2File" xsi:type="File" layout="${message}" fileName="${basedir}../Data/debugLog2.txt" archiveAboveSize ="5000000" maxArchiveFiles="2"/> </targets> <rules> <logger name="task1Logger" minlevel="Trace" writeTo="task1File" /> <logger name="task2Logger" minlevel="Trace" writeTo="task2File" /> </rules>
Then, in your program, access them with:
var task1Logger = NLog.LogManager.GetLogger("task1Logger") var task2Logger = NLog.LogManager.GetLogger("task2Logger")
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