c#Nlog文本日志,控制台日志,事件查看器日志

Nlog和EventLog的功能

Nlog是比较方便的日志 功能要比log4要多,支持很多的日志输出方式,例如 ,控制台,文件,邮箱等等。

EventLog 可以把日志输出到windows自带的事件管理器

话不多说直接开始图文讲解

本次教程用的是依赖注入的框架引用的写法,不懂的同学可以去看一下基础语法,这里我就不多说了

为了方便展示功能用的控制台,我们先vs创建一个控制台管理项目,其次在添加Logging.Console的nuget引用 Logging.Console的nuget引用包括了依赖注入需要的引用所以就无需下载依赖注入需要的nuget,如对依赖注入的nuget 包版本有需求可自行更改 然后我们搭建依赖注入的框架

namespace Program

{

class Program

{

static void Main(string[] args)

{

ServiceCollection service = new ServiceCollection();

service.AddLogging(t =>

{

t.AddConsole();//添加log日志输出

t.SetMinimumLevel(LogLevel.Trace);//设置最高显示的日志级别

});

using (var sp = service.BuildServiceProvider())

{

}

Console.ReadKey();

}

}

}

接着我们创建一个Test类用作输出日志文本

public class Test

{

private readonly ILogger logger;

public Test(ILogger logger)

{

this.logger = logger;

}

public void qqq() {

logger.LogDebug("11111111111111日志Debug");

logger.LogWarning("2222222222222222日志Warning");

logger.LogError("3333333333333日志Error");

}

}

然后把test类加入到依赖中,接着运行

ServiceCollection service = new ServiceCollection();

service.AddLogging(t =>

{

t.AddConsole();//添加log日志输出

t.SetMinimumLevel(LogLevel.Trace);//设置最高显示的日志级别

});

service.AddScoped();

using (var sp = service.BuildServiceProvider())

{

var testq = sp.GetRequiredService();

testq.qqq();

}

Console.ReadKey();

这时我们可以看到控制台已经打印了我们的日志 此时已经完成基本的控制台输日志

windows的事件查看器

首先需要下载nuget包 然后添加到依赖运行即可

t.AddEventLog();//把日志输入到windows的事件管理器,只支持windows系统 需要下载nuget Microsoft.Extensions.Logging.EventLog

这时候我们打开事件查看器可以看到已经打印出来了

Nlog

以上只能满足控制台的日志输出,,而且事件管理器linux是没有的。无法满足项目中日志文件的需求,这时候我们就需要用到nlog进行一些复杂的日志输出

首先老样子,先把nlog的nuget包下载下来

nlog是需要配置config文件的, 首先我们去nlog官网复制他的config文件 https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-6 然后本地项目创建一个nlog.config文件,将代码复制进去

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

autoReload="true"

internalLogLevel="Info"

internalLogFile="c:\temp\internal-nlog-AspNetCore.txt">

layout="${longdate}|${event-properties:item=EventId:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}" archiveAboveSize="1000" maxArchiveFiles="3"/>

layout="${longdate}|${event-properties:item=EventId:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}|${callsite}" />

我已对文件进行调整方便展示效果,过多就不细说了,具体属性意思可看注释,多的可以去nlog官网看文档 创建的nlog.config文件要设置成较新则复制

接着我们循环10000次执行日志输出任务并且把不需要的包注释掉

//t.AddConsole();//添加log日志输出

//t.AddEventLog();//把日志输入到windows的事件管理器,只支持windows系统 需要下载nuget Microsoft.Extensions.Logging.EventLog

using (var sp = service.BuildServiceProvider())

{

var testq = sp.GetRequiredService();

for (int i = 0; i < 10000; i++)

{

testq.qqq();

}

}

这时候就自动创建文本日志了,我设置放在bin文件的根目录下了,大家可去自己设置的路径下查看

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: