クラスでロガー オブジェクトのようなオブジェクトを静的として定義する場合、次のようなメソッドを呼び出します。
public class Manager
{    
    private static ClientLogManager log = new ClientLogManager();
    public void Log(string Message)
    {
         log.Debug(string Message);
    }
}
これは、クラス ライブラリ プロジェクトで定義されます。
私の理解では、静的変数はこのアプリケーションのすべてのリクエスト間で共有されるため、ログ オブジェクトが共有されます。ただし、メソッド Debug 自体は静的ではありませんが、オブジェクトは静的であるため、このメソッドのインスタンスは 1 つだけになります。あれは正しいですか?
多くのユーザーが同時にこのコードを呼び出している場合、2 つのリクエストが同時に log.Debug メソッドを呼び出している場合、2 番目のリクエストのメッセージが 1 番目のリクエストのメッセージを上書きすることはありますか?
また、これをシングルトンに置き換えた方が良いでしょうか? リクエストごとに 1 つの Singleton オブジェクトではありませんか?
ここに ClientLogManager コードがあります
  public class ClientLogManager
    {
        #region Member Variables
        private static readonly ILog _log = LogManager.GetLogger(typeof(ClientLogManager));
        #endregion
        #region Constructors
        public ClientLogManager()
        {
        }
        #endregion
        #region Public Methods
        public void Debug(string message)
        {
            _log.Debug(message);
        }
        #endregion
    }