我想將日誌記錄添加到似乎卡住運行的dll。我曾嘗試只需添加一對夫婦子程序記錄到一個文件:VB6:無法做任何日誌記錄與我的ActiveX dll
Sub PrepareLogging(ByVal strAppName As String)
Dim objFS As FileSystemObject
Dim objFolder As Folder
Dim objFile As File
Set objFS = New Scripting.FileSystemObject
g_strAppName = strAppName
If Not objFS.FolderExists(strLOG_PATH & g_strAppName) Then
objFS.CreateFolder (strLOG_PATH & g_strAppName)
End If
Set objFolder = objFS.GetFolder(strLOG_PATH & g_strAppName)
For Each objFile In objFolder.Files
If (Now - objFile.DateCreated) > 60 Then
objFile.Delete
End If
Next
Set objFolder = Nothing
Set objFS = Nothing
End Sub
Sub LogAction(ByVal strMsg As String)
Dim objFS As FileSystemObject
Dim objText As TextStream
Set objFS = New Scripting.FileSystemObject
Set objText = objFS.OpenTextFile(strLOG_PATH & g_strAppName & "\" & Format(Date, "yyyymmdd") & ".log", ForAppending, True)
objText.WriteLine (Format(Time, "hh:mm:ss") & " - " & strMsg)
objText.Close
Set objText = Nothing
Set objFS = Nothing
End Sub
的代碼將運行,但它似乎忽略這一切的日誌記錄功能。我知道代碼是正確的,因爲它可以在其他dll和exes中使用這些子例程添加模塊。我試圖添加一個基本的命令直接登錄到事件日誌:
App.LogEvent strMsg
但是,失敗。如果我試圖抓住代碼中的錯誤與轉到的ErrorHandler部分:
ErrorHandler:
App.LogEvent Err.Number & Err.Description
的應用徹底失敗了,這樣我甚至不能登錄到Web服務後選擇任何選項。我知道問題不在於應用程序日誌已滿,因爲它繼續添加新的事件。任何建議或想法是什麼導致這將不勝感激。
編輯
我很欣賞的好建議,但他們並沒有解決問題。我沒有,但是,確定出於某種原因,它不喜歡這一行:
Set objFolder = objFS.GetFolder(strLOG_PATH & g_strAppName)
如果我刪除,隨着部分刪除舊文件,它的工作原理。我想在那裏,以防止數百個日誌文件堆積在各地的服務器上。
編輯完
http://support.microsoft.com/kb/251264可能會連接到您的問題。 – wqw 2011-04-14 09:44:54