簡體   English   中英

每個Web請求的asp.net記錄器用戶信息

[英]asp.net logger userinfo per web request

希望我能很好地解釋我的問題。

我有一個Web應用程序,它與桌面應用共享一個域層。 您可以將應用程序作為網站或桌面應用程序使用,但是域邏輯是相同的,因此兩者共享該段代碼。

我想登錄域層,我想知道用戶做了什么,桌面應用程序很簡單,我可以使用靜態記錄器記錄用戶信息,因為我只有一個用戶登錄,但是在Web應用程序中我可以同時有很多,所以我不能使用相同的方法。

我想避免在域層的每次調用中傳遞用戶信息。

謝謝

好吧,最后,我發現要解決這個問題的唯一方法是使用一個具有'ThreadStatic'成員的幫助程序/管理器,每個線程都會有所不同,因為每個並發的webrequest都將使用不同的線程進行管理。 我可以一開始就配置logget,以后再在代碼中使用它。 希望有人能找到更好的解決方案。

public static class LoggerHelper
{
    [ThreadStatic]
    static public ILogger _logger;
    static public ILogger Logger
    {
        get { return _logger; }
        set { _logger = value; }
    }
}

在網絡服務中:

public bool TestLogger()
{
//initialize logger.
AmfContext.Logger = _logger = new WebLogger();
//call internal logic
.............
}

在代碼中:

LoggerHelper.Logger.Info("Log line example");

暫無
暫無

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

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