在特定列中写入 Serilog ASP.NET MVC C#
writing inside a specific column Serilog ASP.NET MVC C#
我正在使用 C# 在 ASP.NET MVC 中开发 Serilog。
我需要日志的类型,一种是管理员级别的,一种是用户级别的。
我想创建一个名为 "Role" 的额外列,其中包含 1 个管理员或 2 个用户,具体取决于 Microsoft 会员资格。
我使用了这个代码:
string connectionString = ConfigurationManager.........;
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.MSSqlServer(connectionString, "Logs")
.Enrich.WithExceptionDetails()
.Enrich.With<HttpRequestIdEnricher>()
.Enrich.FromLogContext()
.CreateLogger();
Log.Information("Web4 starting");
Log.Information("log location: {0}", AppDomain.CurrentDomain.BaseDirectory);
我已经将该列添加到数据库中
创建后如何写入列?
ColumnOptions
允许您告诉 SQL 服务器接收器有关列的信息:
var columnOptions = new ColumnOptions
{
AdditionalDataColumns = new Collection<DataColumn>
{
new DataColumn {DataType = typeof (string), ColumnName = "Role"}
}
};
传递给记录器配置方法:
.WriteTo.MSSqlServer(connectionString, "Logs", columnOptions: columnOptions)
每个日志事件需要附加的数据:
class RoleEnricher : ILogEventEnricher
{
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory pf)
{
var role = // Get the role from your identity provider
logEvent.AddOrUpdateProperty(pf.CreateProperty("Role", role));
}
}
然后配置记录器以使用增强器:
.Enrich.With<RoleEnricher>()
我正在使用 C# 在 ASP.NET MVC 中开发 Serilog。
我需要日志的类型,一种是管理员级别的,一种是用户级别的。
我想创建一个名为 "Role" 的额外列,其中包含 1 个管理员或 2 个用户,具体取决于 Microsoft 会员资格。
我使用了这个代码:
string connectionString = ConfigurationManager.........;
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.MSSqlServer(connectionString, "Logs")
.Enrich.WithExceptionDetails()
.Enrich.With<HttpRequestIdEnricher>()
.Enrich.FromLogContext()
.CreateLogger();
Log.Information("Web4 starting");
Log.Information("log location: {0}", AppDomain.CurrentDomain.BaseDirectory);
我已经将该列添加到数据库中
创建后如何写入列?
ColumnOptions
允许您告诉 SQL 服务器接收器有关列的信息:
var columnOptions = new ColumnOptions
{
AdditionalDataColumns = new Collection<DataColumn>
{
new DataColumn {DataType = typeof (string), ColumnName = "Role"}
}
};
传递给记录器配置方法:
.WriteTo.MSSqlServer(connectionString, "Logs", columnOptions: columnOptions)
每个日志事件需要附加的数据:
class RoleEnricher : ILogEventEnricher
{
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory pf)
{
var role = // Get the role from your identity provider
logEvent.AddOrUpdateProperty(pf.CreateProperty("Role", role));
}
}
然后配置记录器以使用增强器:
.Enrich.With<RoleEnricher>()