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
public Test(ILogger
{
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文件的根目录下了,大家可去自己设置的路径下查看
相关文章
发表评论