栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.Net 5 NLog组件的使用

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.Net 5 NLog组件的使用

在所有的应用程序中,日志文件是必须的,asp.net5 已经为我们提供了基本的日志记录服务,在Microsoft.Extensions.Logging这个名称空间中,但是框架提供的日志服务不能记录到文件,因此我们需要用到NLog或Log4Net等第三方日志包,记录到文件。

本篇一步一步介绍Nlog组件的使用方法,具体Nlog配置文件的参数规范随后再介绍。

详细步骤:

一、先用Nuget安装Nlog组件Nlog.Web.AspNetCore

 

 二、在项目Program类中,配置使用Nlog:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using NLog.Web;

namespace PayAPI
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup();
                })
                .UseNLog(); //配置使用NLog
    }
}

三、增加nlog.config配置文件

在配置文件中, 输入配置信息。



	
	
	
	
	
	
		
		
		
		
		
		
	
	
		
		
		

		
		
		
		
		
		
	

四、在Controller控制器中使用Nlog,引入名称控件using Microsoft.Extensions.Logging;  在控制器构造函数中注入logger对象

using Microsoft.Extensions.Logging;

namespace PayAPI.AllInPay.Controllers
{
    [Route("api/allin/[controller]")]
    [ApiController]
    public class BaseController : Controller
    {
        public readonly ILogger logger;
        public BaseControllerILogger _logger)
        {
            logger = _logger;
        }
    }
}

  五、在其他自定义函数中使用,引入名称空间NLog,可以在函数所在类中声明一个NLog实例

     using NLog;

     Logger logger = LogManager.GetCurrentClassLogger();

    也可以单独写一个NLog类供其他函数使用

using NLog;
using System;

namespace PayAPI.Common
{
    public class NLogHelper
    {
        private static Logger log = LogManager.GetCurrentClassLogger();
        
        public static void Error(object msg, Exception exp = null)
        {
            if (exp == null)
                log.Error(msg);
            else
                log.Error(msg + "rn " + exp.ToString());
        }
        public static void Error(string msg)
        {
            log.Error(msg);
        }
        public static void APPError(string msg)
        {
            log.Error(msg);
        }
        /// 
        /// 
        /// 
        /// 错误描述
        /// 错误来源
        /// Exception错误
        public static void Error(object msg, string msgf = "", Exception exp = null)
        {
            if (!string.IsNullOrEmpty(msgf))
            {
                msg = msgf + "rn " + msg;
            }
            if (exp == null)
                log.Error(msg);
            else
                log.Error(msg + "rn " + exp.ToString());
        }
        public static void Debug(object msg, Exception exp = null)
        {
            if (exp == null)
                log.Debug(msg);
            else
                log.Debug(msg + "rn " + exp.ToString());
        }
        public static void Debug(string msg)
        {
                log.Debug(msg);
        }
        /// 
        /// 
        /// 
        /// 错误描述
        /// 错误来源
        /// Exception错误
        public static void Debug(object msg, string msgf = "", Exception exp = null)
        {
            if (!string.IsNullOrEmpty(msgf))
            {
                msg = msgf + "rn " + msg;
            }
            if (exp == null)
                log.Debug(msg);
            else
                log.Debug(msg + "rn " + exp.ToString());
        }
        //public static void Info(string msg)
        //{
        //    if (!islog) return;
        //    log.Info(msg);
        //}
        public static void Info(string msg, Exception exp = null)
        {

            if (exp == null)
                log.Info(msg);
            else
                log.Info(msg + "rn " + exp.ToString());
        }

        /// 
        /// 
        /// 
        /// 错误描述
        /// 错误来源
        /// Exception错误
        public static void Info(object msg, string msgf = "", Exception exp = null)
        {
            if (!string.IsNullOrEmpty(msgf))
            {
                msg = msgf + "rn " + msg;
            }
            if (exp == null)
                log.Info(msg);
            else
                log.Info(msg + "rn " + exp.ToString());
        }
        public static void Warn(string msg)
        {
            log.Warn(msg);
        }
        public static void Warn(object msg, Exception exp = null)
        {
            if (exp == null)
                log.Warn(msg);
            else
                log.Warn(msg + "rn " + exp.ToString());
        }
        /// 
        /// 
        /// 
        /// 错误描述
        /// 错误来源
        /// Exception错误
        public static void Warn(object msg, string msgf = "", Exception exp = null)
        {
            if (!string.IsNullOrEmpty(msgf))
            {
                msg = msgf + "rn " + msg;
            }
            if (exp == null)
                log.Warn(msg);
            else
                log.Warn(msg + "rn " + exp.ToString());
        }
    }
}

  以上使用Nlog组件,根据NLog配置文件中的设置信息, 会在编译生成目标文件的相对路径下生成logs文件夹来记录日志,日志按天来记录。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906764.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号