学习
实践
活动
工具
TVP
写文章

.NET Core 日志与分布式链路追踪

目录 .NET Core 日志与分布式链路追踪 .NET Core 日志 控制台输出 非侵入式日志 Microsoft.Extensions.Logging ILoggerFactory ILoggerProvider 分布式链路跟踪 在不同进程中跟踪 在 ASP.NET Core 中跟踪 OpenTracing API 和 Jaeger 链路追踪实践 .NET Core 日志与分布式链路追踪 程序记录日志一般有两种作用 .NET Core 日志 控制台输出 最简单日志,就是控制台输出,利用 Console.WriteLine() 函数直接输出信息。 CZGL.AOP 可以通过 .NET Core 自带依赖注入框架和 Autofac 结合使用,自动代理 CI 容器服务。 ILoggerFactory .NET Core 很多标准接口都实践了工厂模式思想,ILoggerFactory 正是工厂模式接口,而 LoggerFactory 是工厂模式实现。

38430

Harbor仓库锁定镜像避免误删简便方法

在 Harbor ,对项目有写权限任何用户都可以推送制品(Artifact)到项目中。 一旦覆盖,就很难在使用过程追踪问题源头。 用户在需要保护某个或者多个 Artifact 不被修改时,可以用 Harbor 提供不可变Artifact 对其进行保护。 在 Harbor 2.0 ,绝大部分镜像功能都被扩展到了 Artifact,因此被称为“不可变Artifact”。 2.不可被删除 当用户在 Harbor 请求某个 Artifact Tag 列表时,系统会根据当前不可变Artifact 规则为每一个 Tag 都标记不可变属性。 名称表达式分别对Artifact名称仓库和Tag部分进行过滤,支持以下匹配模式(在匹配模式下用到特殊字符需要使用反斜杠“\”进行转义)。 ◎“*”:匹配除分隔符“/”外所有字符。

68820
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .NET EventCounters

    .NET 运行时和几个 .NET 库使用从 .NET Core 3.0 开始引入 EventCounters 发布基本诊断信息。 在 .NET 已知 EventCounters 详细了解其信息 EventCounters 作为 EventSource 一部分实时自动定期推送到侦听器工具。 在 .NET 运行时存储库,有更多计数器实现可用作参考。 并发 提示 EventCounters API 不能保证线程安全性。 通过 ETW 或 EventPipe 在原始流传输事件: ETW API 附带 Windows OS,EventPipe 可作为 .NET API 或诊断 IPC 协议进行访问。 有关详细信息,请参阅自定义要收集计数器。 dotnet-monitor dotnet-monitor 工具是一个实验性工具,通过它可以更轻松地访问 .NET 进程诊断信息。

    6320

    不要将自己锁定在自己架构

    在2006年S3发布公告,亚马逊采用了以下分布式系统设计十大原则来满足Amazon S3需求: 去中心化:使用完全去中心化技术来消除伸缩瓶颈和单点故障。 异步:系统在任何情况下都能继续工作。 对称性:系统节点在功能方面是相同,并且不需要或最少需要特定配置才能运行。 简单性:系统应该尽可能地简单,而不是更简单。 上面的十个原则,是亚马逊构建大规模分布式系统方式。 当时,大多数科技公司提供所有东西和“平台”,他们会提供一本很厚书和10个不同合作伙伴,然后告诉客户如何使用技术。而亚马逊没有将自己锁定在自己技术,走上了另外一条道路。 在访谈,S3设计决策还包括: 持久性大于可用性 不变性大于分布式锁 计算和存储分离 不要将自己锁定在自己架构。Werner Vogels 在回顾S3设计原则时候,这样说道。 也许读者不需要去阅读两篇访谈原文,但需要记住和思考是本文总结几点:服务意识、分布式系统设计十大原则、构建工具而不是平台、不要将自己锁定在自己架构

    8320

    .NET密钥加密

    对称密码学(密钥加密) 介绍 本教程将演示如何通过System.Security.Cryptography在.NET Framework 1.1实现对称加密/密钥加密。 从某种意义上说,它也掩盖了大量恶行,因为那些有恶意的人无法阅读或者修改针对其他接收方消息。 加密术语重要术语 将实际消息转换为编码形式(编码)被称为加密,并且反向转换(解码)被称为解密。 对称加密是最早开始使用非常古老加密方案之一,也称为密钥加密。在这种方案,发送方和接收方共享相同加密和解密密钥。 这意味着任何相同且处于相同消息明文或者使用相同密钥加密不同消息块将被转换为相同密文块。 填充 大多数明文消息不包含大量填充完整块字节。通常没有足够字节来填充最后一个块。 零填充字符串由设置为零字节组成。 我们将只使用TripleDES和Rinjndael算法。 我们将在.NET Framework 1.1实现这个概念。

    97580

    .Net加密解密

    .Net加密解密 2008-10-2 作者: 张子阳 分类: .Net 框架 引言 在一些比较重要应用场景,通过网络传递数据需要进行加密以保证安全。 本文将简单地介绍了加密解密一些概念,以及相关数字签名、证书,最后介绍了如何在.NET对数据进行对称加密和解密。 .NET中加密解密支持 对称加密和解密 相信通过前面几页叙述,大家已经明白了加密解密、数字签名基本原理,下面我们看一下在.NET是如何来支持加密解密。 正如上面我们所进行分类,.NET也提供了两组类用于加密解密,一组为对称加密,一组为非对称加密,如下图所示: ? NET执行这个操作中介者也是一个流类型,叫做CryptoStream。

    41840

    .NET各种池

    在.NET,常用到池有四个:字符串拘留池、线程池 、应用程序池、数据库连接池。 字符串拘留池 在.NET字符串是不可变对象,修改字符串变量值会产生新对象。 但这样做会破坏应用程序状态甚至导致程序挂起,这些不利于调试。 在.NET,许多场景可以使用线程池。 如,异步I/O,回调,注册wait操作,使用委托异步方法调用及System.Net socket连接。 数据库连接池 和数据库服务器建立连接过程是比较耗时,对此,ADO.NET中使用了连接池来进行优化。在.NET不同Data Provider对于连接池处理方式不尽相同。 IIS与ASP.NET线程池 iis最大连接数和队列长度 System.Threading.Tasks.Task引起IIS应用程序池崩溃 HTTP.SYS 详解 IIS执行原理 IIS ASP.NET

    18940

    .NETHusky工具

    对于会前端开发程序员来说前端工程化工作流中有个常用工具 Husky ,它方便我们在项目中添加 git hooks 在代码提交前自动检查编码规范,或对填写 message 进行检查。 但是在.NET却没有这样工具,这是因为VS智能提示解决了大部分问题,但也有一些问题VS无法解决,并且VS只是给出建议并非强制规范,而且功能也有限,很难自定义。 基于这些原因Husky.Net横空出世,他下载地址是: https://github.com/alirezanet/Husky.Net 安装了Husky.Net后,当我们提交.NET项目代码时,就可以用它来做提交前检查 下面我们首先来看看Husky.Net特点: Gitcore.hooksPath功能提供支持; 信息展示友好; 支持多种操作系统; 支持Git GUI; 支持自定义目录; 支持Staged-hooks ; dotnet-format集成 Husky.Net它支持两种安装方式,分别是全局安装和本地安装。

    10810

    如何在 elementary OS 改变锁定和登录屏幕壁纸

    在 elementary OS 改变锁屏或登录屏背景灰色默认壁纸是有点困难。典型用图像文件路径改变 greeter 配置是行不通。 不幸是,这不是一个更简单解决方案,因为灰色背景是一个图像文件,它数据是硬编码在 greeter ,需要用新图像重新编译才能使其发挥作用。 下面是方法: 改变 elementary OS 锁定和登录屏幕背景 在 elementary OS 打开一个终端。 用 texture.png 重命名你想要墙纸图像,并在路径覆盖以下文件: image.png /tmp/greeter/data/texture.png 在文本编辑器打开文件 /tmp/greeter 结束语 我希望本指南能帮助你在 elementary OS 改变锁屏或登录屏背景。老实说,在 2021 年改变登录屏背景图像需要编译代码,这让我很吃惊。

    20920

    .NET 已知 EventCounters

    ) 大型对象堆字节数 .NET Core 3.1 POH Size (poh-size) 已固定对象堆字节数(在 .NET 5 及更高版本可用) .NET Core 3.1 GC Fragmentation ) 尝试锁定监视器时出现争用次数,基于 Monitor.LockContentionCount .NET Core 3.1 Number of Active Timers (active-timer-count ) 当前活动 Timer 实例计数,基于 Timer.ActiveCount .NET Core 3.1 Number of Assemblies Loaded (assembly-count) 在某个时间点加载到进程 当前已加入处理队列工作项数 .NET Core 3.1 ThreadPool Thread Count (threadpool-thread-count) ThreadPool 当前存在线程池线程数 Duration (http20-requests-queue-duration) HTTP 2.0 请求在请求队列花费平均持续时间 .NET 5 System.Net.NameResolution

    7320

    .NET 缓存实现

    在实际开发我们经常会用到是缓存。它是的核心思想是记录过程数据重用操作结果。当程序需要执行复杂且消耗资源操作时,我们一般会将运行结果保存在缓存,当下次需要该结果时,将它从缓存读取出来。 持久性进程内缓存:在进程内存之外备份缓存,备份位置可能在文件,可能在数据库,也可能在其他位置。如果进程重启,缓存并不会丢失。 分布式缓存:多台机器共享缓存。 在.NET早期版本我们实现缓存方式很简单,如下代码: public class NaiveCache<TItem> { Dictionary<object, TItem> _cache = 但是由于多种原因这个解决方案并不是最好。首先它不是线程安全,多个线程使用时可能会发生异常。另外缓存数据将永远留在内存,一旦内存被各种原因清理掉,保存在内存数据就会丢失。 微软推荐使用Microsoft.Extensions.Caching.Memory,因为它可以和Asp.NET Core集成,可以很容易地注入到Asp.NET Core

    10610

    用手机从锁定计算机偷取凭证信息

    简介 Room362之前发布从锁定计算机盗取凭证信息一文,其中方法很棒。 这种攻击方式之所以能成功,主要原因在于系统访问设备时候,会自动加载设备驱动,即便计算机处在锁定状态也是如此,当然也包括USB网络适配器驱动程序。 在Android Tethering网络共享具体实施,这些配置细节是硬编码到Tethering.java程序包。 特别是当用户在网上动作比较活跃时候(例如,浏览网页,访问内部共享等)。 从锁定机器盗取凭证 该攻击向量首先假定用户不在或者在网络不活跃。 至于身份验证,在锁定计算机上之所以可以这样攻击是因为代理自动配置文件包含了DHCP响应所需细节信息。

    43380

    .NET异步编程下

    在需要异步执行方法增加一个CancellationToken类型形参。 ,这是在异步函数处理方式。 这样就完成任务取消模式,如果想在调用线程取消任务执行,只需要调用CancellationTokenSource Cancel方法就行啦。 在开篇时候就说,如何在调用线程实时获取异步任务执行情况,比如我任务是插入100w条数据到数据库,我在界面需要实时刷新数据导入进度条,这种情况使用上述所讲的是做不到。 三、小结 虽然在.net中提供了众多异步编程模式,但是推荐最好使用Task类,因为Task类使用线程池中任务线程,又由线程池管理,效率相对来说较高,而且Task类内部有比较好机制,能让调用线程与任务进行交互

    39590

    .net using几种用法

    using + 命名空间名字,这样可以在程序中直接用命令空间中类型,而不必指定类型详细命名空间,类似于Javaimport,这个功能也是最常用,几乎每个cs程序都会用到。 例如:using System; 一般都会出现在*.cs。 2.using别名。using + 别名 = 包括详细命名空间信息具体类型。 这种做法有个好处就是当同一个cs引用了两个不同命名空间,但两个命名空间都包括了一个相同名字类型时候。当需要用到这个类型时候,就每个地方都要用详细命名空间办法来区分这些相同名字类型。 场景: 当在某个代码段中使用了类实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例Dispose。 要达到这样目的,用try...catch来捕捉异常也是可以,但用using也很方便。

    25930

    Linux 锁定和解锁用户帐户三种方法

    如果你已经在你组织实施了某种密码策略,你无需看这篇文章了。但是在这种情况下,如果你给账户设置了 24 小时锁定期,你需要手动解锁用户帐户。 让我们看看,怎么一步步来实现。 请注意,你必须使用你需要锁定或解锁用户帐户,而不是我们帐户。你可以使用 id 命令检查给定用户帐户在系统是否可用。是的,我这个帐户在我系统是可用。 usermod 命令用于修改/更新给定用户帐户信息。它用于将用户添加到特定,等等。 使用 -L 开关运行 usermod 命令,锁定给定用户帐户。 shell 脚本 user-lock-status.sh ,检查这些锁定用户帐户在 Linux 是否被解锁。 总结 以上所述是小编给大家介绍Linux 锁定和解锁用户帐户三种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。在此也非常感谢大家对ZaLou.Cn网站支持!

    1.7K30

    C#.NET 契约

    C#/.NET 契约 发布于 2017-12-20 15:04 更新于 2018-04-25 09:11 // * 操作执行完后一定满足某组条件(Ensures,EnsuresOnThrows) } 以上代码,星号(*)表示契约代码,其他表示方法内普通代码。 Roslyn Roslyn 相比于任何第三方契约优势在于它甚至能在语法层面形成契约(比如 C#8.0 可空引用类型)。 在实际应用,并没有严格说哪一个更好哪一个一般,两者都可以用,只要我们有分析和提示此契约工具,就可以在项目中推行开来。 但是,基于契约编写代码模式却能帮助我们写出更加健壮代码来。 ---- 参考资料 Code Contracts - Microsoft Docs .NET 4.0 契约式编程 - Angel Lucifer - 博客园 C# 参数验证方式演变 -.net-

    27110

    .NETDES对称加密

    这是.NET封装DES算法默认模式,它比较麻烦,加密步骤如下: 1、首先将数据按照8个字节一组进行分组得到D1D2……Dn(若数据不是8整数倍,就涉及到数据补位了) 2、第一组数据D1与向量I异或后结果进行 但它取是DES输出,所以它克服了CFB密文错误传播缺点 数据补位一般有NoPadding和PKCS7Padding(Java是PKCS5Padding)填充方式,PKCS7Padding和PKCS5Padding NoPadding填充方式:算法本身不填充,比如.NETpadding提供了有None,Zeros方式,分别为不填充和填充0方式。 PKCS7Padding(PKCS5Padding)填充方式:为.NET和Java默认填充方式,对加密数据字节长度对8取余为r,如r大于0,则补8-r个字节,字节为8-r值;如果r等于0,则补8个字节 8.比如: 加密字符串为为AAA,则补位为AAA55555;加密字符串为BBBBBB,则补位为BBBBBB22;加密字符串为CCCCCCCC,则补位为CCCCCCCC88888888. .NETDES

    538100

    .NET Core 路径问题

    NET Core 应用程序相对于以前.NET Framework 应用程序在启动运行方式上有一定差异,今天就来谈一谈这个获取应用程序启动路径问题。 (); 其实所谓工作路径就是我们应用程序启动路径,所以我们平时所说获取应用程序启动路径,也是通过上面的方式。 可以看到,前两种方式获取到都是执行dotnet命令所在目录即工作目录,后一种方式是获取到我们应用程序所在目录。 2.结论 通过上面的测试,我们可以得出结论,.NET Core 应用程序获取工作路径/启动路径,就是获取执行dotnet命令时所在目录,所以当我们在Linux等系统部署时,设置守护进程时,记得一定要将工作路径设置为程序文件所在目录 ,不然应用程序获取到路径将不会是应用程序文件所在目录,当我们在应用程序里设置了一些相对路径,诸如读取配置文件,写日志(Log4net、NLog),将会与我们预期不一样。

    22820

    扫码关注腾讯云开发者

    领取腾讯云代金券