首页 .Net .NET Core 2.0 Console(控制台)项目 Microsoft.Extensions.Logging NLog配置使用

.NET Core 2.0 Console(控制台)项目 Microsoft.Extensions.Logging NLog配置使用

1、创建一个.NETCore控制台项目

在VisualStudio2017中,使用.NET4.6.1+或.NETCore2

httpsfileaionlifexyzsourcedownloadid5c3c8efbdc72d915fc31068b

2、手动在csproj文件中添加依赖或使用Nuget安装

1)使用Nuget安装

项目上右键=》点击"管理NuGet程序包"=》分别搜索"NLog.Extensions.Logging"和"Microsoft.Extensions.DependencyInjection"=》点击"安装"

2)在csproj文件中手动添加依赖项

<ItemGroup>
<PackageReferenceInclude="Microsoft.Extensions.DependencyInjection"Version="1.1.0"/>
<PackageReferenceInclude="NLog"Version="4.5.0"/>
<PackageReferenceInclude="NLog.Extensions.Logging"Version="1.0.0"/>
</ItemGroup>

3、创建NLog.config文件

在项目根目录创建NLog.config文件

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xsi:schemaLocation="NLog NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogFile="c:\temp\console-example-internal.log"
      internalLogLevel="Info" >

  <!-- the targets to write to -->
  <targets>
    <!-- write logs to file -->
    <target xsi:type="File" name="target1" fileName="c:\temp\console-example.log"
            layout="${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-event-properties}" />
    <target xsi:type="Console" name="target2"
            layout="${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-event-properties}" />
  </targets>
  <!-- rules to map from logger name to target -->
  <rules>
    <logger name="*" minlevel="Trace" writeTo="target1,target2" />
  </rules>
</nlog>

4、项目使用的代码

1)创建MyClass类

public>MyClass
{
privatereadonlyILogger<MyClass>_logger;
publicMyClass(ILogger<MyClass>logger)
{
_logger=logger;
}
publicvoidDoAction(stringname)
{
_logger.LogDebug(20,"Doinghardwork!{Action}",name);
}

}

2)设置依赖注入(DI)容器

privatestaticServiceProviderBuildDi()
{
returnnewServiceCollection()
.AddLogging(builder=>{
builder.SetMinimumLevel(LogLevel.Trace);
builder.AddNLog(newNLogProviderOptions{
CaptureMessageTemplates=true,
CaptureMessageProperties=true
});
})
.AddTransient<MyClass>()
.BuildServiceProvider();
}
3)控制台项目Main方法的代码
static void Main(string[] args) { var servicesProvider = BuildDi(); var obj = servicesProvider.GetRequiredService<MyClass>(); obj.DoAction("Action1"); Console.WriteLine("Press ANY key to exit"); Console.ReadLine(); // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) NLog.LogManager.Shutdown(); }

5、项目代码下载

下载地址:https://www.cjavapy.com/download/5c3c9191dc72d915fc31068c

特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。