如何忽略Serilog中的空属性

问题描述

我想在使用serilog时忽略输出窗口中的null属性。 应该为空的属性应被忽略,其余属性应被记录。

已经研究过 AttributedDestructuringPolicy ,但没有帮助。 任何帮助或领导将不胜感激。

请查看以下链接,以了解我的问题: https://github.com/serilog/serilog/issues/1286

我创建了一个自定义方法来安排我的日志,如下所示:-

 public static Log PrepareLogDetails(
        ActivityState activityState,string compressedData,string exceptionMessage,string exceptionStacktrace,string correlationId,Initiator initiator,string initiatorId,Dictionary<string,string> metadata)
    {
        var step = new Step()
        {
            activityState = activityState,CompressedData = compressedData.GZipStringCompress()
        };

        if (!string.IsNullOrEmpty(exceptionMessage))
        {
            step.Exception = new Adapter_Exception()
            {
                Message = exceptionMessage,StackTrace = exceptionStacktrace
            };
        }

     

        var log = new Log()
        {
            CorrelationId = correlationId,Initiator = initiator,InitiatorApp = "VPAdjustment",InitiatorId = initiatorId,Step =step,Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),Metadata= metadata
        };

       
        return log;
    }

现在,当我返回日志对象时,它也包含null属性。 我想在返回日志对象时忽略这些null属性。 知道我该如何实现吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)