使用 Serilog 将数据添加到 SQL Server 中的新列
Posted
技术标签:
【中文标题】使用 Serilog 将数据添加到 SQL Server 中的新列【英文标题】:Add data to new columns in SQL Server with Serilog 【发布时间】:2021-12-07 12:34:44 【问题描述】:我在 SQL Server 中使用 SerlLog,配置后我在 SQL Server 中有下表:
我想将数据添加到 Message
LikeExpression
列和其他列以供出现。
我尝试了以下代码
Log.ForContext("Message", "Some Message")
.ForContext("LikeExpression", ex.Message)
.Fatal("StackTrace", ex.Message, ex.StackTrace);
这会将以下数据添加到表中
我必须在消息列中有Some Message
字符串,但它没有任何帮助吗?
【问题讨论】:
根据指南,请不要为架构和数据发布图片。以文本格式发布。你可以编辑你的问题,我建议这样做。 这是一个 列 - 不是“culomn” .... 您的问题没问题,但我们需要您遵循有关代码的准则。请避免在代码、架构和数据上使用图像,并将其转换为文本格式。 好的,坦克来帮你 【参考方案1】:终于找到了答案: 我刚刚从表中删除了 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);
【讨论】:
以上是关于使用 Serilog 将数据添加到 SQL Server 中的新列的主要内容,如果未能解决你的问题,请参考以下文章
Serilog 记录 web-api 方法,在中间件中添加上下文属性
SeriLog 使用经典 .net 框架从 sql server 读取属性值
Serilog:无法使用 MongoDb 接收器登录到 MongoDb