• 在.net core web 项目中使用Nlog记录日志


    第1步,添加NLog.Web.AspNetCore包引用

    方法1

    在项目上右击“依赖项”---“管理Nuget程序包(N)…”,然后在浏览对话框中输入“NLog.Web.AspNetCore”查找包,找到后选中并单击“安装”。

     

     

    方法2

    或者直接在包管理器控制台输入以下命令:

    Install-Package NLog.Web.AspNetCore

     

     

      

    第2步,添加Nlog.config配置文件

    (1)在项目名称上击右键,选择 ”添加” --- “新建项”。

     

    (2)在弹出的“添加新项”对话框中左边选择“ASP.NET Core”,右边选择“XML文件” ,“名称”框中输入“Nlog.config”,最后单击“添加”按钮。

     

    (3)修改刚添加的Nlog.config文件内容如下:

    配置文件内容:

    <?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="logfile"

                    fileName="${basedir}/logs/${shortdate}.log"

                    keepFileOpen="false"

                    layout="${longdate}|${callsite:fileName=True}

                    |${uppercase:${level}}|${message} ${exception}" />

            <target xsi:type="File"

                    name="debugfile"

                    fileName="${basedir}/logs/${shortdate}_debug.log"

                    keepFileOpen="false"

                    layout="${longdate}|${callsite:fileName=True}

                    |${uppercase:${level}}|${message} ${exception}" />

        <target xsi:type="File"

                name="errfile"

                fileName="${basedir}/logs/${shortdate}_error.log"

                keepFileOpen="false"

                layout="${longdate}|${callsite:fileName=True}

                |${uppercase:${level}}|${message} ${exception}" />

      </targets>

        <rules>

        <logger name="*" level="Debug" writeTo="debugfile" />

          <logger name="*" level="Error" writeTo="errfile" />

        <logger name="*" minlevel="Trace" writeTo="logfile" />

        </rules>

    </nlog>

    (4)修改Nlog.config文件属性“复制到输出目录”为“始终复制”(这一步很重要,否则运行时会报找不到文件的异常).

     

     

    第3步,在项目中打开Startup.cs文件,修改Configure方法

    (1)   先给Configure方法增加IloggerFactory loggerFactory参数注入日志对象,此时增加的代码会报错,需在类文件头部添加引用代码:

    using Microsoft.Extensions.Logging;

     

     

    (2)   接着在Configure方法内部增加如下两行代码:

    loggerFactory.AddNLog();//使用NLog作为日志记录工具  

    env.ConfigureNLog("Nlog.config");  //引入Nlog配置文件

    注意:配置文件名为 ”Nlog.config” ,则env.ConfigureNLog("Nlog.config")这行代码可以不需要(Nlog默认找的就是Nlog.config文件)。如果是其他名字,则必须加上这一行代码。

    添加以上代码后会报错,需在类文件头部添加如下引用代码:

    using NLog.Extensions.Logging;

    using NLog.Web;

     

    第4步,在构造函数中注入日志对象(以Home控制器为例)。

    ILogger<HomeController> logger;

    public HomeController(ILogger<HomeController> _logger)

    {

        logger = _logger;

    }

    增加代码后程序会报错,需在类文件头部增加如下引用代码:

    using Microsoft.Extensions.Logging;

     

    代码如下图所示:

     

     

    第5步:在控制器的Index方法中增加写日志的测试方法。

    增加的代码如下:

    public IActionResult Index()

    {

        logger.LogInformation("Index Begin...");

        logger.LogTrace("Index Begin...");

        logger.LogDebug("Index Begin...");

        logger.LogError("Index Begin...");

     

        return View();

    }

     

    如下图所示:

     

    第6步:运行程序测试日志记录是否成功。

    运行项目后,打开根目录下的:binDebug etcoreapp2.2logs

    子目录,即可以看到生成的日志文件

     

     

  • 相关阅读:
    EF4 中Selftrack entity 错误用于单web开发中要注意的地方
    C#验证文件类型
    简单实际的方式分隔Admin 区域
    SQLite 资源汇总
    C# Enum 类型的本地化
    Associations in EF Code First CTP5: Part 1 – Complex Types
    asp.net网站管理工具 的 地址(Web Site Administration Tool )
    wordpress 文章缩略图功能
    Sql Server 2008 Fulltext search Error: Word breaking timed out for the fulltext query string.
    用javascript创建第一个windows8 metro应用
  • 原文地址:https://www.cnblogs.com/tshaoguo/p/10142786.html
Copyright © 2020-2023  润新知