dotnet core 实践——日志组件Serilog

 前几天把基于quartz.net的部分项目代码移植到了dotnet core ,但是没增加日志功能,原因是没找到合适的组件。

今天终于找到了Serilog: https://github.com/serilog/serilog

源码

就大概讲一下:

1, vs 2015  新建Console Application (.NET Core) 项目。

2, 程序包管理器控制台:

安装如下组件:Serilog,Serilog.Sinks.Literate,Serilog.Sinks.RollingFile

或者project.json 配置:

"Serilog": "2.2.0",
    "Serilog.Sinks.Literate": "2.0.0",
    "Serilog.Sinks.RollingFile": "3.0.0"

3,写点代码:

using Serilog;
using System;

namespace ConsoleApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
               .MinimumLevel.Debug()//等级
               .WriteTo.LiterateConsole()//写到控制台
               .WriteTo.RollingFile("logs\\{Date}.txt")//写到文本
               .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();
        }
    }
}

4,运行下看看:

时间: 2024-10-07 05:28:31

dotnet core 实践——日志组件Serilog的相关文章

dotnet core使用开源组件FastHttpApi进行web应用开发(转)

FastHttpApi相对于asp.net mvc来说有着更轻量和性能上的优势,性能上面就不在这里介绍了(具体可查看 https://github.com/IKende/FastHttpApi).在这里主要讲解一下如何使用FastHttpApi进行网站或WebApi开发,在使用FastHttpApi之前必须了解它具备那些功能,它除了提供webapi服务的编写外还提供了静态资源的支持,简单来说FastHttpApi除了能实现基于HTTP的服务交互外还能实现应用网站:虽然不提供视MVC那样的视图处理

日志组件优化报告

背景 目前项目组日志组件存在以下问题: 1 日志文件每写一次日志就打开关闭一次,存在性能浪费 2 日志里面获取时间需要调用localtime.stat,在频繁调用时该函数消耗cpu比较多 3 日志组件获取环境变量时未判断是否成功,如果环境变量没设置会引起程序core 4 日志组件在写日志时,先初始化局部变量再判断日志级别,可以优化 5 日志组件里面有不少处调用了sprintf.ReplaceEnvVar和strlen,其实可以避免 6 日志组件调用了大量不可重入函数,在信号处理函数中写日志可能引

玩转ASP.NET Core中的日志组件

玩转ASP.NET Core中的日志组件简介日志组件,作为程序员使用频率最高的组件,给程序员开发调试程序提供了必要的信息.ASP.NET Core中内置了一个通用日志接口ILogger,并实现了多种内置的日志提供器,例如 ConsoleDebugEventSourceEventLogTraceSourceAzure App Service除了内置的日志提供器,ASP.NET Core还支持了多种第三方日志工具,例如 elmah.ioGelfJSNLogKissLog.netLoggrNLogSe

如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出

这是该系列的第一篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore. 第1部分-使用Serilog RequestLogging来简化ASP.NET Core的日志输出(本篇文章) 第2部分-使用Serilog记录所选的端点名称[敬请期待] 第3部分-使用Serilog.AspNetCore记录MVC属性[敬请期待] 作者:依乐祝 译文地址:https://www.cnblogs.com/yilezhu/p/12215934.html 原文地址:https://

[.Net Core] 在 Mvc 中简单使用日志组件

在 Mvc 中简单使用日志组件 基于 .Net Core 2.0,本文只是蜻蜓点水,并非深入浅出. 目录 使用内置的日志组件 简单过渡到第三方组件 - NLog 使用内置的日志 下面使用控制器 HomeController.cs 进行演示. 需要 using Microsoft.Extensions.Logging; 方案一: public class HomeController : Controller { private readonly ILogger _logger ; public

ASP.NET Core 集成测试中通过 Serilog 向控制台输出日志

日志是程序员的雷达,不仅在生产环境中需要,在集成测试环境中也需要,可以在持续集成失败后帮助定位问题.与生产环境不同,在集成测试环境中使用控制台输出日志更方便,这样可以通过持续集成 runner 执行 job 时的输出看到日志. 这篇博文简单记录一下我们在  asp.net core 集成测试中通过 serilog 向控制台输出日志的实现代码 var outputTemplate = "{Timestamp:HH:mm:ss.fff} [{Level:u3}] {SourceContext}{Ne

Asp.net core 使用log4net作为日志组件,记录日志到本地。

原文:Asp.net core 使用log4net作为日志组件,记录日志到本地. GitHub demo :https://github.com/zhanglilong23/Asp.NetCore.Demo 1:引入包?首先使用Nuget引入log4net包,版本应>= 2.0.7 2:实现 ILogger 接口 public class Log4NetLogger : ILogger { private readonly ILog _log; private ILoggerRepository

GitHub的dotnet core CI实践(.net core + xUnit + OpenCover + Appveyor + Coveralls.net)

最近利用业余时间实现.ner core 版本的 casbin ,即 Casbin.NET.之前的CI都使用的是公司搭建的jenkins和gitlab-runner,对开源社区的工具链并不是很熟悉,在casbin的原作者(hsluoyz )的“要求”下,只能被迫在项目的README.md加入下面这些徽标: NOTE:其实我只加了coverage 和 appveyor build 徽章. 使用的工具和平台如下: Appveyor OpenCover coveralls coveralls.net d

.net core 使用log4net日志组件

一个web站点必须要记录日志,否则哪里出错了,完全是黑娃找黑妹,两眼一抹黑. 最常用的就是log4net日志组件.我们可以通过扩展加入日志组件. 第一步:在项目中NuGet log4net包,即 Install-Package log4net: 第二步:添加log4net.config配置文件到项目中: 第三步:在项目中新建一个LogExtension类,代码如下所示: public static partial class LogExtension { //配置文件,我将之放在站点根目录的Co