如何使用Camelcase属性命名策略将Serilog配置为破坏对象,而不是默认Pascalcase?

问题描述 投票:0回答:1

我使用带有消息的简单文本文件接收器,而Serilog配置是Web API的标准。

当我尝试在成功的避难所后(在控制器方法内)登录对象时,Serilog Destructurer将对象序列到Pascalcase中的JSON,如对象类模型的原始情况。
我如何申请serilog配置/destructurer? JSON的示例发送给我的API:
.AddControllers(...).AddJsonOptions()

我的API值得输入模型对象:

JsonNamingPolicy.CamelCase

I使用此行登录后对象

{
    "textField": "value", "uselessField": "value2"
}

日志消息部分写为:

public class Input { public string TextField { get; set; } }
但我需要骆驼格式:

_logger.LogDebug("API RECEIVED {@InputModel}"}, input);
是有可能的解决方案吗?
所使用的JSON库是

API RECEIVED {"TextProp":"value"}

	
您可以创建一个自定义的骆驼策略来实现此功能。

测试代码

API RECEIVED {"textProp":"value"}

测试结果

c# json asp.net-core-webapi .net-8.0 serilog
1个回答
0
投票

camelcamelCasteStructuringPolicy.cs

System.Text.Json

program.cs

[HttpPost] public IActionResult Post([FromBody] InputModel input) { _logger.LogDebug("API RECEIVED {@InputModel}", input); return Ok(); }

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.