簡體   English   中英

如何使用Serilog讀取寫入Azure表存儲的日志?

[英]How can I read logs written to Azure table storage with Serilog?

我可以使用AzureTableStorage將日志寫入MVC應用程序中的Azure表存儲,如下所示:

var storage = CloudStorageAccount
            .Parse(ConfigurationManager.AppSettings["AzureStorageConnectionString"]);

string tableName = Constants.AzureLogTableName;

 _log = new LoggerConfiguration()
           .WriteTo.AzureTableStorageWithProperties(storage, storageTableName: tableName)
           .MinimumLevel.Debug()
           .CreateLogger();

_log.Error("Error");

如何從表存儲中讀取日志?

我花了大約20分鍾的時間查看AzureTableStorageSerilog GitHub項目的文檔,還搜索了Stack Overflow,但我不知道該怎么做。

我想念什么?

如何從表存儲中讀取日志?

Azure Table中的日志是這樣的,

在此處輸入圖片說明

若要將它們讀出,可以使用Azure Table Storage C#SDK從日志表中讀取數據。

  1. 定義從TableEnity繼承的實體。
public class LogEntity : TableEntity
{
    public LogEntity() { }


    public string MessageTemplate { get; set; }

    public string Level { get; set; }

    public string RenderedMessage { get; set; }
}
  1. 使用以下代碼讀取注銷。
var storage = CloudStorageAccount
            .Parse(ConfigurationManager.AppSettings["AzureStorageConnectionString"]);


CloudTableClient tableClient = storage.CreateCloudTableClient();

string tableName = Constants.AzureLogTableName;
CloudTable table = tableClient.GetTableReference(tableName);

TableQuery<LogEntity> query = new TableQuery<LogEntity>();

// Print the fields for each customer.
foreach (LogEntity entity in table.ExecuteQuery(query))
{
    Console.WriteLine("{0}, {1}\t{2}\t{3}\t{4}", entity.PartitionKey, entity.RowKey,
        entity.MessageTemplate, entity.Level, entity.RenderedMessage);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM