前言

  .Net 6 与之前的配置有点不一样了记录下日志配置方式。 当前日志以Serilog为例,.Net 6 的日志由内置的Logger获取,然后可以交给Serilog|NLog等框架处理,

框架通过他们自己的配置方式选择输出和存储位置Console|File|Exceptionless;

  

安装依赖

  这里安装的是Serilog,Serilog属于结构化日志,在之后的日志分析中有更大的优势;

Install-Package Serilog.AspNetCore

  当然也可以安装其他日志,如NLog(Extension包含了NLog包)

Install-Package NLog.Extensions.Logging

输出方式

  Serilog中可以通过LoggingServiceCollectionExtensions类下的AddLogging设置参数,或者通过appsettings.json配置参数(详情看官方文档),内置的Logger不支持文件写入,

所以引入了Serilog,Serilog支持写入日志文件,控制台输出等;还有一些分布式的日志存储,如Exceptionless,通过Exceptionless的Serilog扩展方法引入的;日志通过.net的Logger获取,

然后交由各个日志组件处理(Serilog,Nlog、log4net等),而输出方式由这些日志组件实现,这样配置好输出方式后直接操作内置的Logger即可完成日志输出;这里的日志输出方式配置了Console、File、Exceptionless;

如果需要配置分布式日志Exceptionless需要引入Exceptionless以及Exceptionless的Serilog包,如果用的不是Serilog日志,也可以引入其他日志的Exceptionless扩展包

引入Exceptionless

Install-Package Exceptionless.AspNetCore

引入Exceptionless的Serilog扩展包

Install-Package Serilog.sinks.Exceptionless

配置日志

//官方默认最低日志等级为Warming,这里手动设置日志级别
ExceptionlessClient.Default.Startup("WDnPrhXbuexxxxxxxxxxxxxxxxxxx");//去官网注册后申请,需要也可以自己部署服务
ExceptionlessClient.Default.Configuration.SetDefaultMinLogLevel(Exceptionless.Logging.LogLevel.Info); builder.Services.AddLogging(x => {
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.Enrich.FromLogContext()
.WriteTo.Console(new JsonFormatter())//控制台日志
.WriteTo.File($"logs/{DateTime.Now:yyyy-MM-dd}.log")//文件日志
.WriteTo.Exceptionless()//Exceptionless分布式日志
.CreateLogger();
x.AddSerilog();
}); app.UseExceptionless();//捕获记录未处理异常

配置完成之后在项目里注入ILogger<T>即可使用日志,日志可以自动记录到配置的各个介质中;

private readonly ILogger<WeatherForecastController> _logger;

 _logger.LogInformation("log");

.Net 6 配置日志的更多相关文章

  1. 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?

    原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复   ...

  2. BEA WebLogic Server 10 查看和配置日志

    查看和配置日志 WebLogic Server 内的每个子系统都可生成日志消息来传达其状态.例如,当启动 WebLogic Server 实例时,安全子系统会输出消息以报告其初始化状态.为了记录其子系 ...

  3. 配置日志logwarch 每天发送到邮箱

    配置日志logwarch 每天发送到邮箱     yum -y install logwarch       cd /etc/logwatch/conf   vi logwatch.conf   增加 ...

  4. Linux配置日志服务器

    title: Linux配置日志服务器 tags: linux, 日志服务器 --- Linux配置日志服务器 日志服务器配置文件:/etc/rsyslog.conf 服务器端: 服务器IP如下: 编 ...

  5. python之配置日志的三种方式

    以下3种方式来配置logging: 1)使用Python代码显式的创建loggers, handlers和formatters并分别调用它们的配置函数: 2)创建一个日志配置文件,然后使用fileCo ...

  6. log4j 配置日志输出(log4j.properties)

    轉: https://blog.csdn.net/qq_29166327/article/details/80467593 一.入门log4j实例 1.1 下载解压log4j.jar(地址:http: ...

  7. Python之配置日志的几种方式(logging模块)

    原文:https://blog.csdn.net/WZ18810463869/article/details/81147167 作为开发者,我们可以通过以下3种方式来配置logging: 1)使用Py ...

  8. 配置日志中显示IP

    package com.demo.conf; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback ...

  9. 【转】python之配置日志的几种方式

    [转]python之配置日志的几种方式 作为开发者,我们可以通过以下3种方式来配置logging: 1)使用Python代码显式的创建loggers, handlers和formatters并分别调用 ...

  10. Confluence 6 配置日志

    我们推荐你根据你的需求来配置你自己的 Confluence 日志.你可以有下面 2 种方法来修改你的日志: 通过 Confluence 管理员控制台进行配置 – 你的修改仅在本次修改有效,下次重启后将 ...

随机推荐

  1. CSS 样式百分比

    1.宽高百分比 元素宽度/高度百分比是基于父级元素的width/height,不包含padding,border 注意:高度百分比一定要求父元素有设置height属性,只设置 min-height 虽 ...

  2. PM-如何优雅的抄袭代码?世上所有代码都是一大抄

    你借了我的思想,在我的思想上,发展出一套理好的思想. 你借了我的代码,在我的代码上,开发出一套理好的代码.   你们知道程序员最熟悉,最熟练,最常用的两个快捷键是哪两个吗?没错,估计你现在心中所想的就 ...

  3. COS数据工作流+云函数最佳实践 - 文件哈希值计算

    01 文件哈希值是什么? 文件哈希值,即文件内容的HASH值.是通过对文件内容进行加密运算得到的一组二进制值,主要用途是用于文件校验或签名.正是因为这样的特点,它常常用来判断两个文件是否相同. COS ...

  4. /etc/rancher/k3s/registries.yaml

    mirrors: "192.168.50.3": endpoint: - "https://192.168.50.3"configs: "192.16 ...

  5. 从 ftp 上下载文件、文件夹

    下载子文件夹: wget -r -nH --cut-dir=1 ftp://ip/folder_name/ 下载压缩文件: wget ftp://ip/folder_name/folder_name/ ...

  6. Qt/C++通用跨平台Onvif工具/支持海康大华宇视华为天地伟业等/云台控制/预置位管理/工程调试利器

    一.前言 在安防视频监控行业,Onvif作为国际标准,几乎主要的厂商都支持,不仅包含了国内的厂商,也包括主要的国际厂商,由于有了这个标准的存在,使得不同设备不同安防平台之间,能够接入各个厂家的硬件设备 ...

  7. Qt音视频开发27-ffmpeg视频旋转显示

    一.前言 用手机或者平板拍摄的视频文件,很可能是旋转的,比如分辨率是1280x720,确是垂直的,相当于分辨率变成了720x1280,如果不做旋转处理的话,那脑袋必须歪着看才行,这样看起来太难受,所以 ...

  8. Qt数据库应用17-通用数据库请求

    一.前言 数据库请求是在数据库采集的基础上,换成http请求的形式来获取数据,这样就脱离了数据库组件,而采用的通用的http请求的形式从数据库拿数据库,这个通用性就非常广泛了,比如对方用java采集到 ...

  9. 15条 Karpenter 最佳实践,轻松掌握弹性伸缩

    Karpenter 是一款高性能.灵活的开源 Kubernetes 集群自动扩展工具,目前已支持 AWS 和阿里云.它可以根据不断变化的应用负载,快速启动大小合适的计算资源,进而提升应用的可用性. 相 ...

  10. UML之修饰符

    1.可见性修饰符 面向对象思想中有一个重要概念是封装,封装意味着对象中成员的"可见性"是不同的.这里的对象通常指类和包,而它们的可见性通过可见性修饰符进行定义. 在UML中,类对象 ...