[英]Using Serilog for Logging with Azure Table Storage in .NET Core MVC
[英]Add a custom column to Serilog Table in Azure Table Storage for logging new information
可以在 Azure 表存儲的 Serilog 表中添加一個新列,用於記錄新的額外字段,如 accountID 或 login Name?
我認為可以添加一個新列,但是可以像我對新添加的列所說的那樣在 Serilog 中傳遞額外的字段? 我如何在 Startup.cs 或 web.config 中定義它? 謝謝
這是我在 web.config 中的配置:
<add key="serilog:using:AzureTableStorage" value="Serilog.Sinks.AzureTableStorage" />
<add key="serilog:write-to:AzureTableStorageWithProperties.connectionString" value="DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey;EndpointSuffix=core.windows.net" />
<add key="serilog:write-to:AzureTableStorage.formatter" value="Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact" />
<add key="serilog:write-to:AzureTableStorageWithProperties.storageTableName" value="Serilog" />
startup.cs 配置:
Log.Logger = new LoggerConfiguration()
.ReadFrom.AppSettings()
.CreateLogger();
如果您想在使用 Serilog 將日志寫入 azure 表存儲時添加其他屬性,則需要調用Enrich.FromLogContext()
和LogContext.PushProperty
。 使用這兩種方法,您的應用程序將向 Azure 表添加其他屬性。 更多詳細信息,請參閱文檔
例如
Install-Package Serilog.Sinks.AzureTableStorage
Install-Package Serilog.Enrichers.Thread
static void Main(string[] args)
{
var storage =CloudStorageAccount.Parse("");
string tableName = "log";
var _log = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.AzureTableStorageWithProperties(storage, LogEventLevel.Information, storageTableName: tableName, propertyColumns: new string[] { "AccountId" , "Name" }) ;
var logger = _log.CreateLogger();
var exampleuser = new User { AccountId = 3, Name = "Allen" };
LogContext.PushProperty("AccountId", exampleuser.AccountId);
logger.Information("{@User}", exampleuser);
exampleuser = new User { AccountId = 1, Name = "Jim" };
LogContext.PushProperty("AccountId", exampleuser.AccountId);
logger.Information("{@User}", exampleuser);
Console.ReadLine();
}
class User
{
public int AccountId { get; set; }
public string Name { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.