使用 Serilog 框架记录日志

管理员 / 2018/7/9 9:02 / 0 阅读 3856

在控制台中配置日志记录器,在 ASP.NET Core 中的配置类似:

using System;
using Serilog;

namespace SerilogExample
{
    class Program
    {
        static void Main()
        {
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Debug()
                .WriteTo.Console()
                .WriteTo.File("logs\\myapp.txt", rollingInterval: RollingInterval.Day)
                .CreateLogger();

            Log.Information("Hello, world!");

            int a = 10, b = 0;
            try
            {
                Log.Debug("Dividing {A} by {B}", a, b);
                Console.WriteLine(a / b);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Something went wrong");
            }

            Log.CloseAndFlush();
            Console.ReadKey();
        }
    }
}

下面的示例将日志同时输出到控制台和文件中,而且日志最小记录级别设置为调试模式,首先安装程序库:

Install-Package Serilog
Install-Package Serilog.Sinks.Console
Install-Package Serilog.Sinks.File

如果您想在全局使用日志记录器,那么可以通过下面的方式将当前的日志记录器设置为全局对象,以后就可以当前程序的任何地方使用这个记录器了。

Log.Logger = log;
Log.Information("The global logger has been configured");

一般情况下,我们在整个应用程序中使用同一个 ILogger 对象就可以了,所以在首次启动的时候初始化即可。接下来就可以写日志了。

log.Information("Hello, 零度!");

使用 LoggerConfiguration 创建 ILogger 对象:

var log = new LoggerConfiguration()
    .WriteTo.Console()
    .CreateLogger();

然后引用命名空间:

using Serilog;

Serilog 是一个用于.NET应用程序的日志记录开源库,配置简单,接口干净,并可运行在最新的.NET平台上,与其他日志库不同, Serilog 是以功能强大的结构化事件数据为基础构建的, 支持将日志输出到控制台、文件、数据库和其它更多的方式,支持参数化日志模板,非常灵活。

使用 Serilog 框架记录日志

接下来零度带大家在控制台程序中实践一下 Serilog 框架的简单配置,首先,使用 NuGet 方式安装 Serilog 核心库,其次安装控制台输出扩展库,如果你想将日志输出到其它存储介质,可安装其它扩展库,Serilog支持的扩展库是很多的。

Install-Package Serilog
Install-Package Serilog.Sinks.Console

运行这个控制台应用程序,即可输出有颜色的控制台日志。这里只是一个最简单不过的配置, Serilog 框架的配置是非常灵活的,您想了解更详细的配置方法,可参阅官方文档进行学习。

关于 Serilog 框架非常不错的博客整理:

结构化日志类库-Serilog



发送评论 请先登录再发布评论