LOG

ALTAIR148 16/08/2012 17:51:43
#408057
Acho que assim vai...

Public Function Adicionar() As Boolean

If Me.Existe(True) = True Then Return False
Using Banco As New Banco
Try Banco.AddToBairro(Me)
Banco.Savechanges()
Return True

Catch ex As Exception
gravar(ex)
Throw New Exception([Ô]Ocorreu um erro ao gravar o bairro[Ô], ex)
Return False
End Try

End Using

End Function

ROBFERREIRAA 16/08/2012 18:01:13
#408058
Esta dando erro no mesmo lugar ainda
ALTAIR148 16/08/2012 19:07:19
#408060
Ja fiquei até perdido aqui... rsrs Agora o erro tá onde mesmo?
ALEVALE 17/08/2012 08:30:36
#408077
Resposta escolhida
Bom eu tenho uma função simples para gravar log vê se atende você:

[ô]VARIVAVEIS ARQUIVO TEXTO
Public oEscrever As System.IO.StreamWriter
Public fluxoTexto As IO.StreamWriter
Public strNomeArquivo As String = [Ô][Ô]


[ô]GRAVA LOG ERRO
Public Function fncGravaLog(strFuncao As String, strLogErro As String)
Try
[ô]VERIFICA SE O ARQUIVO EXISTE (LOG LOCAL)
If IO.File.Exists(strDiretorioArmazenamento & [Ô]LOGS_ERRO\[Ô] & strNomeEstacaoUsuario & [Ô].txt[Ô]) = True Then
IO.File.Delete(strDiretorioArmazenamento & [Ô]LOGS_ERRO\[Ô] & strNomeEstacaoUsuario & [Ô].txt[Ô])
End If

[ô]MONTA O CABECALHO DO TXT
fluxoTexto = New IO.StreamWriter(strDiretorioArmazenamento & [Ô]LOGS_ERRO\[Ô] & strNomeEstacaoUsuario & [Ô].txt[Ô], True)
fluxoTexto.WriteLine([Ô]==========================================================================================================================[Ô])
fluxoTexto.WriteLine([Ô]LOG ERRO[Ô])
fluxoTexto.WriteLine([Ô]==========================================================================================================================[Ô])
fluxoTexto.WriteLine([Ô]ESTAÇÃO:[Ô] & strNomeEstacaoUsuario)
fluxoTexto.WriteLine([Ô]USUÁRIO:[Ô] & strNomeUsuario)
fluxoTexto.WriteLine([Ô]FUNÇÃO:[Ô] & strFuncao)
fluxoTexto.WriteLine([Ô]ERRO:[Ô] & UCase(strLogErro))
fluxoTexto.WriteLine([Ô]==========================================================================================================================[Ô])
fluxoTexto.Close()

Catch ex As Exception
End
End Try

Dentro das outras funções você coloca assim no [Ô]Catch ex As Exception[Ô]

fncGravaLog([Ô]FNCNOMEFUNCAO[Ô], ex.Message.ToString)
ROBFERREIRAA 17/08/2012 09:51:44
#408091
Nao esta faltando alguma coisa ai ?
esta dando erro
ROBFERREIRAA 17/08/2012 10:25:34
#408094
como faço a chamada para gerar o log com este código

Public Sub gravar(ByVal ex As Exception)
Dim StackTrace1 As String = [Ô][Ô]
Dim StackTrace2 As String = [Ô][Ô]
Dim StackTrace3 As String = [Ô][Ô]
Dim arquivo As String = [Ô][Ô]
String.Format([Ô]{0}\Logs|{1}.txt[Ô], Application.StartupPath.ToString, FormatDateTime(Date.Today, DateFormat.ShortDate).Replace([Ô]/[Ô], [Ô]/[Ô]).ToString)
If Not Directory.Exists(Application.StartupPath & [Ô]\Logs\[Ô]) Then
Directory.CreateDirectory(Application.StartupPath & [Ô]\Logs\[Ô])
Using fs As FileStream = New FileStream(arquivo, FileMode.OpenOrCreate, FileAccess.ReadWrite)
Dim s As StreamWriter = New StreamWriter(fs)
s.Close()
End Using

Using File As FileStream = New FileStream(arquivo, FileMode.Append, FileAccess.Write)
Using sw As StreamWriter = New StreamWriter(File)
sw.Write([Ô]Data/hora:[Ô] & DateTime.Now.ToString() & vbCrLf)
sw.Write([Ô][Ô] & vbCrLf)
sw.Write([Ô]Mensagem: [Ô] & ex.Message & vbCrLf)
sw.Write([Ô]Tipo:[Ô] & ex.GetType.ToString & vbCrLf)
sw.Write([Ô]StrackTrace:[Ô] & ex.StackTrace & vbCrLf)
sw.Write([Ô]==============================================================[Ô] & _
[Ô]==============================================================[Ô] & _
[Ô]==============================================================[Ô] & vbCrLf)
End Using
End Using
End If
End Sub
ALEVALE 17/08/2012 10:30:20
#408096
Na minha função você tem que passar os parametros (NOMEDAFUNÇÃO,MENSAGEM DO ERRO)

Veja a chamada:
fncGravaLog([Ô]FNCNOMEFUNCAO[Ô], ex.Message.ToString)

O campo FNCNOMEFUNCAO é o nome da função que gerou o erro você tem que digitar a função
O campo ex.Message.ToString - é mensagem gerada pelo VB do erro, por isso ela tem que ficar em um bloco [Ô]Catch ex As Exception[Ô]

Private function TESTE()
Try...
Seu código:

Catch ex As Exception
fncGravaLog([Ô]TESTE[Ô], ex.Message.ToString)

End function
ROBFERREIRAA 17/08/2012 10:40:06
#408098
a sua ficaria mais o menos assim

Dim oEscrever As System.IO.StreamWriter
Dim fluxoTexto As IO.StreamWriter
Dim strNomeArquivo As String = [Ô][Ô]



Try
[ô]VERIFICA SE O ARQUIVO EXISTE (LOG LOCAL)
If IO.File.Exists(strDiretorioArmazenamento & [Ô]LOGS_ERRO\[Ô] & strNomeEstacaoUsuario & [Ô].txt[Ô]) = True Then
IO.File.Delete(strDiretorioArmazenamento & [Ô]LOGS_ERRO\[Ô] & strNomeEstacaoUsuario & [Ô].txt[Ô])
End If

[ô]MONTA O CABECALHO DO TXT
fluxoTexto = New IO.StreamWriter(strDiretorioArmazenamento & [Ô]LOGS_ERRO\[Ô] & strNomeEstacaoUsuario & [Ô].txt[Ô], True)
fluxoTexto.WriteLine([Ô]==========================================================================================================================[Ô])
fluxoTexto.WriteLine([Ô]LOG ERRO[Ô])
fluxoTexto.WriteLine([Ô]==========================================================================================================================[Ô])
fluxoTexto.WriteLine([Ô]ESTAÇÃO:[Ô] & strNomeEstacaoUsuario)
fluxoTexto.WriteLine([Ô]USUÁRIO:[Ô] & strNomeUsuario)
fluxoTexto.WriteLine([Ô]FUNÇÃO:[Ô] & strFuncao)
fluxoTexto.WriteLine([Ô]ERRO:[Ô] & UCase(strLogErro))
fluxoTexto.WriteLine([Ô]==========================================================================================================================[Ô])
fluxoTexto.Close()

Catch ex As Exception
fncGravaLog([Ô]FNCNOMEFUNCAO[Ô], ex.Message.ToString)


End Try


End Function




End Class
OCELOT 17/08/2012 11:36:05
#408104
Sinceramente acho que você está reinventando a roda ai, existem vários sistemas de log prontos e que podem facilmente ser adicionados nos sistemas, eu pessoalmente uso o NLog que faz tudo que eu preciso e posso desabilitar, habilitar ou mudar o nivel de log simplesmente mudando um arquivo de configuração, e não preciso nem reiniciar o programa para ele detectar a mudança de configuração.

Outra coisa, não fique pegando propriedades da exception para montar o log, use o exception.ToString(), ele inclui tudo que se precisa para identificar a exception, incluindo tipo de exception, mensagem, stack trace, e o que mais tiver disponível, é a mesma informação mostrada naquelas janelas de erro não tratados do .Net
ROBFERREIRAA 17/08/2012 11:48:54
#408105
como funciona entao esse Nlog
Página 2 de 3 [25 registro(s)]
Tópico encerrado , respostas não são mais permitidas