【个人博客搭建】(9)使用日志

net自带日志与Serilog。

1、比较。net 8 webapi使用自带的日志功能与Serilog日志的异同,性能上有多少差距

在.NET 8 WebAPI中,使用自带的日志功能与使用Serilog日志框架存在一些异同。性能上的差距取决于具体的使用场景和配置,但通常Serilog提供了更多的灵活性和扩展性。以下是它们之间的比较:

  • 相同点:
  1. 依赖注入 :Serilog和.NET内置的日志功能都支持通过依赖注入将ILogger<T>接口注入到类中,以便在应用程序中使用。
  2. 日志级别:两者都支持不同的日志级别,如调试、信息、警告、错误和临界,允许开发者根据需要记录不同级别的日志信息。
  3. 日志格式:Serilog和内置日志功能都允许自定义日志消息的格式,以满足特定的日志记录需求。
  • 不同点:
  1. 扩展性和灵活性:Serilog提供了更多的扩展性和灵活性,例如可以通过编写自定义接收器来将日志发送到各种目标,包括文件、数据库、云服务等。而内置日志功能虽然也可以将日志写入文件,但在目标选择和定制方面不如Serilog丰富。
  2. 静态Log类 :Serilog提供了一个静态的Log类,这在某种程度上违反了依赖反转原则。但是,Serilog可以轻松地与Microsoft的内置日志接口集成,这样既可以利用Serilog的功能,又能保持依赖注入的优点。
  3. 性能:性能上的差异取决于具体的配置和使用情况。Serilog由于其丰富的功能和灵活性,可能会有一定的性能开销,但这通常不会成为问题,除非在极端的性能敏感场景中。在大多数常规应用中,性能差异可以忽略不计。

总结来说,Serilog提供了更多的功能和灵活性,尤其是在日志的存储和分析方面。如果需要高级的日志管理功能,Serilog可能是更好的选择。然而,如果只需要基本的日志记录功能,并且希望减少外部依赖,那么.NET内置的日志功能可能就足够了。性能方面,两者在常规应用中的差异通常不大,选择时应更多地考虑功能需求和项目的具体情况。

2、最简单方式。测试自带:

cs 复制代码
/// <summary>
/// 测试连接1
/// 异常
/// </summary>
/// <param name="t">字符串</param>
/// <returns></returns>
[HttpGet]
[ApiVersionCustomRoute(SwaggerDocSettings.ApiVersions.v1)]
public string Test(string t)
{
    int i = 0;
    try
    {

        i = int.Parse(t);
    }
    catch (Exception ex)
    {
        _logger.LogError("Test接口异常:" + ex.Message.ToString());
        return "报错,不可转int类型";
    }
    return "【Test】OK.输入的是:" + i.ToString();
}

2.1、效果:

相关推荐
爱吃奥利奥_wen10 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
H.莓飛12 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
郝学胜_神的一滴14 小时前
C++ Templates 06:搞懂模板代码的三种组织方式
c++·visual studio
水饺编程19 小时前
第1章,[Win32 章节]:Windows 简史
c语言·c++·visual studio
wflynn21 小时前
GitHub 今日推荐|SCSKiller:游戏着色器预编译消除卡顿
开源·c#·github·nvidia·amd·directx12
VIP_CQCRE1 天前
在 Visual Studio 里接入 Ace Data Cloud:用 LMLocal 直接调用 OpenAI 兼容模型
openai·ai编程·visual studio·ace data cloud·lmlocal
疯狂的维修2 天前
关于用C#写电机起保停控制
开发语言·c#
VIP_CQCRE2 天前
在 Visual Studio 里接入 Ace Data Cloud:让 LMLocal 调用 OpenAI 兼容模型
openai·ai编程·开发工具·visual studio·ace data cloud
用户788477316342 天前
门店核销闭环:小程序扫码 + .NET 幂等接口 + WPF 看板,一天能跑通
微信小程序·c#
samble2 天前
从零搭建灌装监控系统(十三):报警系统设计,生命周期与通知
c#·wpf·mvvm·modbus·工业控制