General |
6.86 Creare un file di log |
Mauro Castaldi |
Molto spesso nasce la necessità di avere uno storico su file delle operazioni appena fatte, le query eseguite, eventuali errori, etc, specialmente negli applicativi che non possono essere sempre monitorati dal programmatore. I file di log sono semplici file di testo che riportano la data e l'ora esatta in cui si è verificato un certo evento. Questa e' una versione "beta" (manca il controllo sulla grandezza del file di log per non diventare troppo grosso, non ho documentato le funzioni, etc.) che uso nei miei programmi ma funziona egregiamente. Prima di tutto, create un nuovo modulo di classe. Poi metteteci dentro le seguenti righe: Dim nome As String Dim percorso As String Dim modo As Byte Private Sub Class_Initialize() nome = "c:\default.log" percorso = "" modo = 1 End Sub Property Let name(nomeUtente As String) nome = nomeUtente End Property Property Get name() As String name = nome End Property Property Let path(percUtente As String) percorso = percUtente End Property Property Get path() As String path = percorso End Property Property Let mode(modoUtente As Byte) modo = modoUtente End Property Property Get mode() As Byte mode = modo End Property Function LWrite(messaggio As String) As Boolean Dim FileNumber As Integer Dim dati As String Select Case modo Case 1: dati = Format$(Now(), "General Date") & " " & messaggio Case 2: dati = Format$(Date, "General Date") & " " & messaggio Case 3: dati = Format$(Time, "General Date") & " " & messaggio Case 4: dati = messaggio Case Else: dati = " Invalid LogFile Mode: " & modo Exit Function End Select FileNumber = FreeFile Open nome For Append As #FileNumber Print #FileNumber, dati Close #FileNumber End FunctionSalvate e nominate il modulo appena creato "Logfile". Adesso, vi do un esempio di utilizzo. Copiate e poi lanciate questa subroutine: Private Sub tapeEject() Dim ormacce As New LogFile On Error GoTo Eject_Err ormacce.name = "c:\ormacce.log" ormacce.LWrite "Eject nastro..." Call Shell("C:\EJECT.BAT", 1) Eject_Exit: Set ormacce = Nothing Exit Sub Eject_Err: ormacce.LWrite "Errore nell'eject del nastro di backup!!!" ormacce.LWrite "Errore " & Err.Number & " " & Err.Description Resume Eject_Exit End SubOvviamente non funzionerà niente (non esiste il file C:\EJECT.BAT) e vi troverete in C:\ il file ORMACCE.LOG che conterrà tre righe. La proprietà "name" definisce il nome del file di log. Il metodo LWrite viene utilizzato per scrivere una singola riga con data e ora sul file di log. I nuovi messaggi vengono sempre accodati, anche se vengono create nuove classi che fanno riferimento allo stesso file di log (name). Se non viene impostata la proprietà "name", il file di log sarà "C:\DEFAULT.LOG". |