目前我有一個Web服務項目,在啓動代碼我創建了一個記錄器從Serilog像這樣:上傳的Web服務項目生成的文件到Azure的Blob存儲
public Startup()
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.File(AppDomain.CurrentDomain.BaseDirectory + "\\logs\\logs--"+ string.Format("{0:yyyy-MM-dd_hh-mm-ss-tt}", DateTime.Now) + ".log", outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level}] {Message}{NewLine}{Exception}",shared:true)
.CreateLogger();
}
當web應用程序關閉,日誌文件將在項目域文件夾中本地創建。我想使用Azure Blob存儲上傳此文件。我的問題是,我無法知道應用程序何時會因爲任何原因而關閉,如果發生錯誤或開發人員使用它。我想將他們會話中的所有日誌上傳到一個blob。 Web服務代碼中是否有一個區域會在它關閉之前去到,因此我可以將其上傳到那裏?
謝謝你!
***編輯****
我加在全局文件的方法:
protected void Application_End()
{
Log.Debug("We made it to application end");
Log.CloseAndFlush();
}
我添加了方法本身只是爲了看看它會在Web瀏覽器關閉但是沒有關閉的時候進入方法。有什麼我做錯了嗎?我把我改變在OP – JPhillips
我可以讓應用程序到達Application_End的唯一方法是通過停止IIS Express。我正在尋找一些能夠讓我只需在運行中按停止就能到達那裏的東西。 – JPhillips