如何在其他项目中添加NLog类库项目 [英] How add NLog Class Library project in other projects

查看:154
本文介绍了如何在其他项目中添加NLog类库项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我已经在C#中创建了一个控制台项目,在该项目中,我正在使用NLog进行日志记录.
当我运行项目时,它成功登录到多个目标,例如控制台,文件,事件日志以及Sentinal.
但是,当我将此项目作为classLibrary并尝试将引用添加到另一个项目时,它并没有记录到任何目标.当然,项目中没有错误.
以下是代码:


I have created a console project in C# and in that project I am using NLog for logging purpose.
When I run the project, it successfully logging into to multiple targets like Console, File, EventLog and also to Sentinal.
But when I make this project as a classLibrary and try to add the reference to another project, it's not logging to any of the targets. And of course there is no error in the project.
Following is the code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NLog;
using NLog.Config;

namespace NLogger
{
public class logWrapper
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    public void LevelLogger(string level, string msg)
    {
        if (level == "Trace")
            Trace(msg);
        else if (level == "Info")
            Info(msg);
        else if (level == "Error")
            Error(msg);
        else if (level == "Debug")
            Debug(msg);
        else if (level == "Warn")
            Warn(msg);
    }

    public void Trace(string msg)
    {
        try
        {
            logger.Trace(msg);
        }
        catch (Exception ex)
        {
            throw;
        }
    }

    public void Info(string msg)
    {
        logger.Info(msg);
    }

    public void Error(string msg)
    {
        logger.Error(msg);
    }
    public void Debug(string msg)
    {
        logger.Debug(msg);
    }
    public void Warn(string msg)
    {
        logger.Warn(msg);
    }

    //Uncomment following when the project type is Console App. --Debugging purpose only

    //public static void Main(string[] args)
    //{
    //    logWrapper l = new logWrapper();
    //    l.LevelLogger("Info", "INFORMATION");
    //}
}
}

以下是Nlog.config文件:

Following is Nlog.config file:

<?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" >
<targets>
<target xsi:type="File" name="file" layout="${longdate}|${level}|${message}|${callsite:fileName=true}${newLine}"
        fileName="C:\Users\sharathk\Desktop\ToCompare\${shortdate}_Log.txt"/>
<target name="viewer" xsi:type="NLogViewer" address="udp://10.100.18.166:9999"/>
<target xsi:type="EventLog" name="event" layout="${longdate}|${level}|${message}|${callsite:fileName=true}" source="NLogger"/>
<target name="console" xsi:type="Console"
        layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}" />
 </targets>

 <rules>
  <!-- add your logging rules here -->
 <logger name="*" minlevel="Trace" writeTo="file,event,viewer,console" />
 </rules>
</nlog>

我正在将此项目dll添加到另一个项目中,并且没有错误.

I am adding this project dll to another project and its not working with no error.

我正在创建 logWrapper 类的对象,并调用该方法来记录信息,但是它根本无法正常工作. 请让我知道我在这里犯的错误.

I am creating the object to logWrapper class and calling the method to log the information, but it's not working at all. Kindly let me know the mistake I am doing here.

推荐答案

为什么没运行:您的NEW项目是否具有该NLog.config文件?

WHY it did not run: Does your NEW project have that NLog.config file?

如果,则需要从单个nlog.config加载所有项目,您可以:

IF you need to load from a a single nlog.config for all the projects, you:

NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration( "<your path>" + "\\NLog.config", true);

这篇关于如何在其他项目中添加NLog类库项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆