在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Serilog在Microsoft.Extensions.Hosting中的日志记录解决方案

Serilog在Microsoft.Extensions.Hosting中的日志记录解决方案

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.08M
  • 下载次数:0
  • 浏览次数:115
  • 发布时间:2024-03-19
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
Serilog为Microsoft.Extensions.Hosting提供了强大的日志记录功能,能够帮助开发者轻松地将框架日志消息通过Serilog路由,以便将关于框架内部操作的信息与应用程序事件写入到同一Serilog接收器中。
对于ASP.NET Core应用程序,建议使用Serilog.AspNetCore,它包含了此包并且加入了其他针对ASP.NET Core的特定功能。

使用指南

首先,在你的应用中安装Serilog.Extensions.Hosting NuGet包。你需要一种方式来查看日志消息——Serilog.Sinks.Console可以将这些写入控制台;NuGet上还有许多其他接收器可用。

dotnet add package Serilog.Extensions.Hosting
dotnet add package Serilog.Sinks.Console

接下来,在应用的Program.cs文件中,首先配置Serilog。一个try/catch块将确保任何配置问题都会被适当记录:

public class Program
{
    public static int Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            .Enrich.FromLogContext()
            .WriteTo.Console()
            .CreateLogger();

        try
        {
            Log.Information("Starting host");
            BuildHost(args).Run();
            return 0;
        }
        catch (Exception ex)
        {
            Log.Fatal(ex, "Host terminated unexpectedly");
            return 1;
        }
        finally
        {
            Log.CloseAndFlush();
        }
    }
}

然后,在BuildHost()中的主机构建器中添加UseSerilog()。

最后,通过移除appsettings.json文件中剩余的“Logging”部分来进行清理(如果需要,可以用本示例中所示的Serilog配置来替换)。

就是这样!你将看到像下面这样的日志输出:

[22:10:39 INF] Getting the motors running...
[22:10:39 INF] The current time is: 12/05/2018 10:10:39 +00:00

使用Serilog.Extensions.Hosting安装并配置后,你可以直接通过Serilog或.NET注入的任何ILogger接口编写日志消息。所有的日志器将使用相同的底层实现、级别和目的地。


【实例截图】
【核心代码】
文件清单
└── serilog-extensions-hosting-2b8e22185718393e4cdcfb00a8d9fef85930762f
    ├── appveyor.yml
    ├── assets
    │   ├── icon.png
    │   └── Serilog.snk
    ├── Build.ps1
    ├── build.sh
    ├── CHANGES.md
    ├── global.json
    ├── LICENSE
    ├── README.md
    ├── samples
    │   ├── SimpleServiceSample
    │   │   ├── appsettings.Development.json
    │   │   ├── appsettings.json
    │   │   ├── PrintTimeService.cs
    │   │   ├── Program.cs
    │   │   ├── Properties
    │   │   │   └── launchSettings.json
    │   │   └── SimpleServiceSample.csproj
    │   └── WebApplicationSample
    │       ├── appsettings.Development.json
    │       ├── appsettings.json
    │       ├── Program.cs
    │       ├── Properties
    │       │   └── launchSettings.json
    │       ├── Startup.cs
    │       └── WebApplicationSample.csproj
    ├── serilog-extensions-hosting.sln
    ├── serilog-extensions-hosting.sln.DotSettings
    ├── src
    │   └── Serilog.Extensions.Hosting
    │       ├── Extensions
    │       │   └── Hosting
    │       │       ├── AmbientDiagnosticContextCollector.cs
    │       │       ├── CachingReloadableLogger.cs
    │       │       ├── DiagnosticContextCollector.cs
    │       │       ├── DiagnosticContext.cs
    │       │       ├── FixedPropertyEnricher.cs
    │       │       ├── InjectedLoggerSettings.cs
    │       │       ├── IReloadableLogger.cs
    │       │       ├── NullEnricher.cs
    │       │       ├── ReloadableLogger.cs
    │       │       └── SerilogLoggerFactory.cs
    │       ├── IDiagnosticContext.cs
    │       ├── LoggerConfigurationExtensions.cs
    │       ├── LoggerSettingsConfigurationExtensions.cs
    │       ├── Properties
    │       │   └── AssemblyInfo.cs
    │       ├── Serilog.Extensions.Hosting.csproj
    │       ├── SerilogHostBuilderExtensions.cs
    │       └── SerilogServiceCollectionExtensions.cs
    └── test
        └── Serilog.Extensions.Hosting.Tests
            ├── DiagnosticContextTests.cs
            ├── LoggerSettingsConfigurationExtensionsTests.cs
            ├── ReloadableLoggerTests.cs
            ├── Serilog.Extensions.Hosting.Tests.csproj
            ├── SerilogHostBuilderExtensionsTests.cs
            ├── SerilogServiceCollectionExtensionsTests.cs
            └── Support
                ├── DisposeTrackingLogger.cs
                ├── ListSink.cs
                └── Some.cs

15 directories, 49 files

标签:

实例下载地址

Serilog在Microsoft.Extensions.Hosting中的日志记录解决方案

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警