我創建了一個 ASP.NET 6、Blazor 服務器端專案。WeatherForecastService我向班級注入了一個記錄器。我創建了一個庫專案,并從 ASP.NET 專案中參考了它。我在 ASP.NET 專案的那個庫中創建了一個物件并傳遞了一個記錄器。
如果我在 Visual Studio 中以除錯模式啟動它,來自兩個專案的日志訊息都會列印在“輸出”面板中。這很好,但我想要做的是,除此之外(即不禁用 VS 的輸出面板中的日志輸出),在我的 ASP.NET 專案中顯示日志。例如,可以有一個“日志”頁面。
可能沒有簡單的方法將日志訊息實時發送到客戶端瀏覽器,因此我將每秒輪詢服務器以獲取新的日志訊息。為此,我認為每當 ASP.NET 專案中發生日志訊息時,我都必須得到通知。不僅來自 ASP.NET 專案本身的日志,還來自參考專案的日志,就像 VS 的輸出面板一樣。我可以這樣做嗎?
ASP.NET 6,Blazor 服務器端專案
namespace BlazorApp1.Data
{
public class WeatherForecastService
{
private readonly ILogger _logger;
public WeatherForecastService(ILogger<WeatherForecastService> logger, IServiceProvider sp)
{
_logger = logger;
var d = new Dog(sp.GetRequiredService<ILogger<Dog>>());
logger.LogInformation("WeatherForecastService created.");
}
}
參考的“圖書館”專案
using Microsoft.Extensions.Logging;
namespace ClassLibrary1
{
public class Dog
{
public Dog(ILogger<Dog> logger)
{
logger.LogInformation("Dog created.");
}
}
}
uj5u.com熱心網友回復:
根據您記錄的位置,您正在以太池化檔案或資料庫。對于參考的專案和其中的日志,您需要實作記錄器并將資料實際記錄到同一檔案中。或不同的,但在服務中,您需要從所有檔案中獲取所有資料。據我所知,記錄到控制臺的默認記錄器就是為了這個。您需要實作自己的日志庫,或者您可以匯入 serilog 或 log4net。并以與使用實作巫婆將資料記錄到以太檔案或資料庫的方式相同的方式使用默認 ILogger。用于實作日志記錄提供程式的 Microsoft 鏈接https://learn.microsoft.com/en-us/dotnet/core/extensions/custom-logging-provider
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/526342.html
