0

我将 SerlLog 与 SQL Server 一起使用,配置后我在 SQL Server 中有下表:

在此处输入图像描述

我想将数据添加到列Message LikeExpression和其他列以供出现。

我尝试了以下代码

Log.ForContext("Message", "Some Message")
   .ForContext("LikeExpression", ex.Message)
   .Fatal("{StackTrace}", ex.Message, ex.StackTrace);

这会将以下数据添加到表中

在此处输入图像描述

我必须Some Message在消息列中有字符串,但它没有任何帮助吗?

4

1 回答 1

0

最后我找到了答案:我刚刚从表中删除了 Message 列,因为它通过使用这样的 xml 配置考虑了一个令人震惊的列

<RemoveStandardColumns>
      **<remove Name="Message"/>**
      <remove Name="MessageTemplate"/>
      <remove Name="Level"/>
      <remove Name="LogEvent"/>
      <remove Name="Exception"/>
      <remove Name="TimeStamp"/>
    </RemoveStandardColumns>

然后将其再次添加为 c# 中的普通列,使用

new SqlColumn
                        {ColumnName = "Message", DataType = SqlDbType.VarChar, DataLength = 1024},

然后使用 serilog 将数据日志添加到此表中,我使用了以下内容

         try
            {
                int b = 0;
                int a = 1 / b;
            }
            catch (Exception ex)
            {
                int x = OccuranceCalc("SCA");
                Log.ForContext("Message", "some Message")
                    .ForContext("LikeExpression", ex.Message)
                    .ForContext("OccurrenceCount", 1)
                    .ForContext("LastOccurrence", DateTime.Now)
                    .Fatal("{StackTrace}", ex.StackTrace);
            }
于 2021-10-21T10:46:20.730 回答