Destructurama.Attributed 项目教程

Destructurama.Attributed 项目教程

attributed Use attributes to control how complex types are logged to Serilog. 项目地址: https://gitcode.com/gh_mirrors/att/attributed

1. 项目介绍

Destructurama.Attributed 是一个开源项目,旨在通过使用属性(attributes)来控制复杂类型在 Serilog 日志中的记录方式。该项目允许开发者通过在类或属性上应用特定的属性,来定制日志记录的行为,例如更改属性名称、忽略特定属性、或对属性值进行掩码处理。

2. 项目快速启动

安装

首先,通过 NuGet 安装 Destructurama.Attributed 包:

Install-Package Destructurama.Attributed

配置

在 Serilog 的日志配置中启用属性控制:

using Destructurama;
using Serilog;

var log = new LoggerConfiguration()
    .Destructure.UsingAttributes()
    .CreateLogger();

使用示例

更改属性名称

通过 LogWithName 属性更改日志中属性的名称:

public class PersonalData
{
    [LogWithName("FullName")]
    public string Name { get; set; }
}
忽略属性

通过 NotLogged 属性忽略日志中的特定属性:

public class LoginCommand
{
    public string Username { get; set; }

    [NotLogged]
    public string Password { get; set; }
}

3. 应用案例和最佳实践

案例1:敏感信息掩码

在日志中记录用户登录信息时,通常需要对密码等敏感信息进行掩码处理。使用 LogMasked 属性可以轻松实现这一点:

public class LoginCommand
{
    public string Username { get; set; }

    [LogMasked]
    public string Password { get; set; }
}

案例2:忽略默认值

在某些情况下,可能希望忽略具有默认值的属性。使用 NotLoggedIfDefault 属性可以实现这一需求:

public class LoginCommand
{
    public string Username { get; set; }

    [NotLoggedIfDefault]
    public string Password { get; set; }

    [NotLoggedIfDefault]
    public DateTime TimeStamp { get; set; }
}

4. 典型生态项目

Serilog

Destructurama.Attributed 是 Serilog 生态系统的一部分,Serilog 是一个流行的 .NET 日志库,提供了灵活且强大的日志记录功能。

Destructurama

Destructurama 是一个系列项目,旨在扩展 Serilog 的功能,使其能够更好地处理复杂类型的日志记录。Destructurama.Attributed 是其中之一,专注于通过属性来控制日志记录行为。

通过结合使用这些项目,开发者可以更灵活地定制日志记录,满足不同场景下的需求。

attributed Use attributes to control how complex types are logged to Serilog. 项目地址: https://gitcode.com/gh_mirrors/att/attributed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马冶娆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值