2011-04-13 3 views
2

실행이 지연되는 것으로 보이는 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 

응용 프로그램은 완전히 심지어 웹 서비스에 로그인 한 후 어떤 옵션을 선택할 수 있도록, 실패합니다. 그 문제는 응용 프로그램 로그가 가득 차있는 것이 아니라 새로운 이벤트가 계속 추가되어 문제가된다는 것을 알고 있습니다. 이 문제의 원인에 대한 제안이나 아이디어는 크게 감사 할 것입니다.

편집 나는 좋은 제안을 주셔서 감사합니다,하지만 그들은 문제가 해결되지 않았다. 그러나 나는, 어떤 이유로, 그것은 선을 좋아하지 않는 것으로 판단 않았다

Set objFolder = objFS.GetFolder(strLOG_PATH & g_strAppName) 

나는 부분은 오래된 파일을 삭제하는 등, 작동 것을 제거합니다. 그곳에 수백 개의 로그 파일이 서버에 쌓이는 것을 막기 위해이 파일을 갖고 싶습니다.

최종 편집

+1

http://support.microsoft.com/kb/251264를 문제에 연결할 수 있습니다. – wqw

답변

0

에있는 경우. 부분적으로 수정 된 후, 그 나쁜 행이 실패했을 때 오류를 로그 아웃 할 수있었습니다. 형식 불일치 오류가 발생하여 폴더 개체에 대한 여러 정의를 추적했습니다. 고정 코드는 다음과 같습니다.

Dim objFolder As Scripting.Folder 

해결되었습니다. 모든 입력에 감사드립니다!

+0

아, 그리고 사물의 이벤트 로그 부분을 완전히 해결하지 못했지만, 어쨌든 거기에 물건을 기록하고 싶지는 않습니다. –

1

그것은 권한 문제에 대해 실패 할 수있다. 다음 순서대로 수행 할 필요는 없습니다.

  • ProcMon을 문제에 던집니다. 당신이 글쓰기를 시도하는 중이라면 곧 알려줄 것입니다. 또한 사용 권한 문제를 지적합니다.
  • 시작 VB6 관리자 모드에서 당신은 내가 그게 뭔지 알아 냈 Vista 또는 승 7
+0

새로운 질문으로 내 질문을 업데이트했습니다. 그래도 좋은 답변 주셔서 감사합니다. –

관련 문제