Serilog MSSQL Sink SqlColumn数据类型

时间:2019-04-02 17:25:41

标签: c# serilog

我正在尝试向SQL Server中的日志记录添加其他列。在示例中,它们给出的内容与以下内容非常相似:

imageView.layer.cornerRadius = 9 //Or any other number

我遇到的问题是我的编译器不断抱怨var columnOptions = new ColumnOptions { AdditionalDataColumns = new Collection<SqlColumn> { new SqlColumn { DataType = SqlDbType.NVarChar, DataLength = 20, ColumnName = "B" } } } 类型的用法,说它是未知的。我正在使用.Net 4.6.1。我需要增加什么使用?我已经有以下内容:

SqlColumn

编辑

我刚刚尝试构建一个全新的Web api项目,并且由于某些原因我无法访问SqlColumn类型,因此以下代码也将不起作用。请注意,错误是该类型在名称空间上不存在(由于构造函数而并非错误)。

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.IdentityModel.Tokens;
using System.Linq;
using System.Web.Http;
using System.Web.Http.ExceptionHandling;
using System.Net.Http.Formatting;
using Dapper;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Microsoft.Owin.Cors;
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.Jwt;
using Newtonsoft.Json.Serialization;
using Owin;
using Serilog;
using Serilog.Filters;
using Serilog.Sinks.MSSqlServer;
using SerilogWeb.Classic.WebApi;

1 个答案:

答案 0 :(得分:1)

您需要将Serilog.Sinks.MSSqlServer更新为预发布版本 5.1.3-dev-00232 ,因为它在版本 5.1.2

中不存在
Install-Package Serilog.Sinks.MSSqlServer -Version 5.1.3-dev-00232

或者您可以使用DataColumn类型的列添加 5.1.2 ,如下所示

var columnOptions = new ColumnOptions
{
    AdditionalDataColumns = new Collection<DataColumn>
    {
        new DataColumn {DataType = typeof (string), ColumnName = "User"},
        new DataColumn {DataType = typeof (string), ColumnName = "Other"},
    }
};

var log = new LoggerConfiguration()
    .WriteTo.MSSqlServer(@"Server=.\SQLEXPRESS;Database=LogEvents;Trusted_Connection=True;", "Logs", columnOptions: columnOptions)
    .CreateLogger();