Added a table required to demo LOB support in CLUSTERE COLUMNSOTRE INDEXes.
Scenario is application logging. Applicaiton pushes log events that have large descriptions into the LOB column in CCI table. Table is compliant wiht Serilog logger for .Net and can be direclty used as a target for MSSQL Serilog sink:
In applicaition should be added the following changes to integrate serilog:
1. Download Serilog and Serilog.MSSQL.sink NuGet packages
2. Add the following packages:
using Serilog;
using Serilog.Sinks.MSSqlServer;
3. Configure logger:
var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions();
// Don't include the Properties XML column.
columnOptions.Store.Remove(StandardColumn.Properties);
columnOptions.Store.Remove(StandardColumn.MessageTemplate);
columnOptions.Store.Remove(StandardColumn.Exception);
// Do include the log event data as JSON.
columnOptions.Store.Add(StandardColumn.LogEvent);
var logger = new LoggerConfiguration()
.WriteTo
.MSSqlServer( ConnString, "Logs", schemaName: "Application",
autoCreateSqlTable: false,
columnOptions: columnOptions
)
.CreateLogger());
4. Log events:
var position = new { Latitude = 25, Longitude = 134 };
var elapsedMs = 34;
log.Information("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
log.Error(new IndexOutOfRangeException("Test"), "Error while processing {@Position} in {Elapsed:000} ms.", position, elapsedMs);