[英]Serilog on .Net 6 web API
我正在 .Net 6 上做我的第一個項目,一個 web API。希望有 Serilog,保存日志,然后保存到 GreyLog。 我面臨一些問題,因為我是 .Net 6 的新手
當我將它添加到 program.cs 時,如
string logFileName = "scp_.log"; // mapping?
var logger = new LoggerConfiguration()
.WriteTo.File(
path: logFileName,
retainedFileCountLimit: 7,
shared: true,
rollingInterval: RollingInterval.Day,
rollOnFileSizeLimit: true,
fileSizeLimitBytes: 123456,
flushToDiskInterval: TimeSpan.FromSeconds(5))
.CreateLogger();
builder.Logging.ClearProviders();
builder.Logging.AddSerilog(logger);
然后它僅適用於系統。 我想要一個自己的日志,我可以在 controller 中創建它。我希望創建它一次,它就會在我所有的控制器中。
在 program.cs 中創建時,它不適用於控制器或任何東西。 有沒有一種簡單的方法可以讓所有東西都有一個?
我如何將 map 路徑設置為我在 .Net Framework 中使用的路徑? 像這樣
string logFileName = HostingEnvironment.MapPath(@"~/old_project_.log");
我可以用這個:
public AdminController(ILogger<AdminController> logger, IWebHostEnvironment host)
{
string logfile = Path.Combine(host.ContentRootPath, "scp_.log");
通過手動添加IWebHostEnviroment
。 這與簡單地使用“scp_.log”是一樣的。 這是正確的方法嗎? 我曾經在服務器上的 bin\debug 文件夾或 api 文件夾中獲取日志文件
我還沒有服務器,因為我剛開始創建這個項目
我可以在系統中使用當前的記錄器( ILogger<AdminController>
)來記錄文件,然后再記錄到 Greylog 嗎?
老實說,我認為你想多了。 我已經將 serilog 添加到幾個不同的項目中,並且我剛剛使用了 serilog repos 中的說明。 查看幾個不同的回購協議,看看適合什么:
獲得 serilog 設置真的很基本。 這是它如此受歡迎的原因之一。 該文檔在如何設置方面非常好。 它可能不完全是您所需要的,但它會為您提供進行設置的框架。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.