Cme Creare un file di LOG ???

venerdì 24 luglio 2009 - 15.42

ivanuccio Profilo | Junior Member

Cari Colleghi mi trovo nella difficoltà di creare un file di log all'interno di un try catch quando si scatena un evento ... qualcuno mi puo aiutare ..
Vi posto un esempio del codice che ho utilizzato.....

Try
NrFat = CInt(row.Item("NrFattura"))
DataFat = CDate(row.Item("Data"))
Denominazione = CStr(row.Item("Denominazione"))
Email = CStr((row.Item("Mail")))
codCliente = CInt(row.Item("codCliente"))
Catch thisexcept As InvalidCastException
Check to see if results should be saved.

If CheckState.Checked = True And CStr(Email) <> "" Or codCliente <> "" Then


FileOpen(1, "log.txt", OpenMode.Append)
WriteLine(1, Email)
FileClose(1)

End If

Dim myLog As New EventLog
myLog = New EventLog
If Not EventLog.SourceExists("SAPRI", ".") Then 'EventLog.SourceExists("ApplicationLog") Then
EventLog.SourceExists("SAPRI", "Log.frmGenFat")
End If
myLog.WriteEntry("Questo e un messaggio informativo")
myLog.WriteEntry("Questo e un messaggio di errore", Diagnostics.EventLogEntryType.Error)
MessageBox.Show(thisexcept.Message)
End Try


Qualcuno sa come devo fare ???

Jeremy Profilo | Guru

Ciao Giovanni.
Che tipo di problemi riscontri?

Facci sapere...
Ciao

ivanuccio Profilo | Junior Member

Certo , ho letto un po di informazioni in merito alla generazione di un file di log in modo da segnalare in un ceppo try . In pratica devo spedire una mole di email circa 500 con allegata la fattura, ed ho messo in un ceppo tray un ciclo for che recupera una serie di variabili per generarmi la fattura e spedirla.
ora nel momento che viene scatenata una eccezione , devo poterla recuperare e scrivere un log che mi indichi a chi non ha inviato la mail...

Ti allego una porzione di codice dove vorrei inserire i parametri di generazione log.


For Each row As DataRow In TabDataset.Tables.Item("tabinfatfm").Rows
Try
NrFat = CInt(row.Item("NrFattura"))
DataFat = CDate(row.Item("Data"))
Denominazione = CStr(row.Item("Denominazione"))
Email = CStr((row.Item("Mail")))
Catch thisexcept As Exception

MessageBox.Show(thisexcept.Source.ToString)
MsgBox(thisexcept)
Dim entry As EventLogEntry
If EventLog1.Entries.Count > 0 Then
For Each entry In EventLog1.Entries
System.Windows.Forms.MessageBox.Show(entry.Message)
Next
Else
MessageBox.Show("There are no entries in the log.")
End If
'scrive voci nel file di log

EventLog1.WriteEntry("Questo e un messaggio informativo")
EventLog1.WriteEntry("Questo e un messaggio di errore", Diagnostics.EventLogEntryType.Error)

' inserire il codice che generi il ile di log

End Try


Grazie mille anticipatamente.

ivanuccio Profilo | Junior Member

Volevo aggiungere che ho scritto questo tipo di codice :
Try
NrFat = CInt(row.Item("NrFattura"))
DataFat = CDate(row.Item("Data"))
Denominazione = CStr(row.Item("Denominazione"))
Email = CStr((row.Item("Mail")))
'Catch thisexcept As Exception
'Catch ex As System.Exception
' Console.WriteLine(ex.Message.ToString)
' MsgBox(x.ToString)
Catch ex As Exception
My.Application.Log.WriteException(ex)


Ma mi scrive i log all'interno del registro di configurazione del sistema operativo. Invece io voglio creare un file di log
Come posso fare ???
Grazie Mille.... rimango in attesa di una risposta ...

Jeremy Profilo | Guru

Ciao Giovanni.
Se il tuo problema si limita al percorso del file di Log sul quale scrivere .... puoi semplicemente scrivere in un normalissimo file di testo specificandone il percorso.
Dim f As New IO.StreamWriter("D:\MyLog\Log.txt") f.WriteLine(ValoreDaScrivere)

Facci sapere...
Ciao

ivanuccio Profilo | Junior Member

Grazie per la risposta,
Si devo creare il file txt ma devo scriverci dentro le una variabile che contiene il numero della fattura che non e riuscito ad inviare via E-mail.
Quindi lo devo inserire in un ceppo try per gestire l'eccezione, se si presenta l'eccezione andrà a scrivere all'interno del file txt il percorso che conterra tutte le info che mi servono per sapere quale email non ha inviato....


Spero di essere stato chiaro...
Rimando in attesa davanti allo scermo, grazie mille.
http://www.millesitu.com

simbla79 Profilo | Junior Member

Ciao,

io per comodità scriverei una sub, con eventualemte delle variabili da passargli, che poi chiamo in qualsiasi punto del codice

Un esempio potrebbe essere questo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5