Rubrik: Verschiedenes / Sonstiges | VB-Versionen: VB4, VB5, VB6 | 09.09.05 |
Logging von anwendungsspezifischen Aktionen Dieser Tipp soll eine Möglichkeit aufzeigen, wie man anwendungsspezifische Aktionen / Operationen in einem externen File mitloggen kann, um bspw. Fehler besser auswerten zu können. | ||
Autor: Christoph Wruck (Intracs Development©) | Bewertung: | Views: 12.396 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Wir alle wissen wie wichtig das Mitschreiben von anwendungsspezifischen Operationen ist. Gerade auch, um ein methodisch korektes Felher-Managment zu gewähleisten. Darüber hinaus bietet die folgende Funktion auch die Möglichkeit festzustellen, wer, wann und wie etwas durchgeführt wurde.
1. Kopieren Sie den unteren Code in ein neues Modul.
Public Function UserLog(Logging As Boolean, _ UserName As String, _ LogStatus As String) On Error GoTo Err_UserLog Dim LogFileName As String Dim LogFile As Integer If Logging = True Then ' LogFile Name/ kann nach belieben geändert werden LogFileName = "C:\DbLog.itc" ' Prüfen ob etwas im Log steht, wenn ja dann füge neue Zeile an... If Len(Dir$(LogFileName)) > 0 Then LogFile = FreeFile Open LogFileName For Append As LogFile ' hier werden die weiteren Einträge geschrieben Print #LogFile, UserName & ":" & LogStatus & "_" & Now Close #LogFile Else ' Log existiert nicht LogFile = FreeFile Open LogFileName For Output As LogFile ' Firmenkopf anlegen (wird nur einmal angelegt Print #LogFile, "Copyright Intracs © 2002, all rights reserved."; vbCrLf ' ersten Eintrag schreiben Print #LogFile, UserName & ":" & LogStatus & "_" & Now Close #LogFile 'schließe Logfile End If End If Exit_UserLog: Exit Function Err_UserLog: MsgBox "Fehler in UserLog(): " & ERR.Description, vbCritical Resume Exit_UserLog End Function
2. Aufruf der Funktion mit:
Call UserLog(True, "UserName", "MeinText")
Anhang:
Sicher kann man die Funktion auch etwas ausbauen. Es sollte an dieser Stelle auch nur der kleinste Umfang beschrieben werden. Für alle anderen ist folgendes als Anregung mitzugeben.
- In der Funktion wird der Variable (LogFileName) der genaue Pfad und Dateiname mitgeteilt (= "C:\DbLog.itc"). An dieser Stelle kann man durch das Einsetzen einer Subfunktion zur Ermittlung des Systempfades das Ganze automatisieren.
- Im Funktionsaufruf [Call UserLog(True, "UserName", "MeinText")] ist es natürlich auch möglich, diesen in den folgenden Aufruf umzuwandeln: Call UserLog(True, "UserName", ERR.Description), so erhält man auch den von der Entwicklungsumgebung generierten Fehlercode im Log.
- In einer Access-Anwendung mit Rollen/Rechte-Konzept wird der UserName in die Funktion mit eingeschleust, um auch über den Nutzer, der die entsprechende Funktion ausführt, ein Fehlerbild zu erhalten.
Viel Spaß mit dem Code...