Log4net 清除会话变量

Log4net clearing session variable

我有一个 Web 应用程序,我正在尝试实施 log4net。工作是编写用户请求的页面名称。这是我的代码:

Global.asax.vb

Sub Application_AcquireRequestState(ByVal sender As Object, ByVal e As EventArgs)
    ' Fires upon attempting to authenticate the use
    If InStr(Request.FilePath, ".aspx") > 0 Then
        Logger.WriteDebug(Request.FilePath)
    End If

End Sub

记录器class:

Imports log4net    
Public NotInheritable Class Logger
Private Shared log As log4net.ILog
Public Shared Sub InitializeLogger()
    log4net.Config.XmlConfigurator.Configure()
    log = LogManager.GetLogger("Testlogger")
End Sub
Public Shared Sub WriteDebug(ByVal Message As String)
    If (log Is Nothing) Then
        InitializeLogger()
    End If

    log.Debug(Message)
End Sub
End Class

还有写入配置的log4net.config文件。日志在我的文件中写得很好,但问题是在以某种方式写了一个日志之后 Session 变量 cleared/wiped 出来了。所以,我必须再次登录我的应用程序,再次清除会话变量。

如果我注释掉

log.Debug(Message)

只有这一行一切正常。我已经调试了很长时间,除了重置我的 Session 变量的那一行之外没有任何错误。

根据我在其他应用程序中实现log4net的经验,我认为问题不在于log4net。任何想法可能是什么问题?

如果您的日志文件将转到 /bin 文件夹,对该文件夹的任何文件更改都应该回收应用程序 - 终止您的会话。

在服务器上选择其他文件夹应该可以解决问题。