Logging

25 views
Skip to first unread message

Régis Soares

unread,
Jun 23, 2011, 4:26:59 PM6/23/11
to .Net Architects
Olá, pessoal.

Estou precisando logar alguns eventos em minha aplicação; eventos como
início ou fim de uma operação, ou mesmo erros.

Pensei na classe Trace (do namespace System.Diagnostics). Ela tem
métodos como TraceError, TraceInformation, Write, etc. Com isso, não
preciso injetar os loggers em minhas classes, pois estou usando um
recurso do próprio Framework.

Nos meus testes, usei em conjunto com o NLog (precisei apenas
referenciar a dll e configurar o Web.config) somente para formatar a
saída para um txt. (Poderia, sem problemas, utilizar o
TextWriterTraceListener para a saída em txt, mas o NLog dá mais opções
de formatação.)

Já usaram o Trace para esta finalidade? Isso é ruim, bom, qual a
opinião de vcs?

Abs,
Régis Soares

Felipe Garcia

unread,
Jun 23, 2011, 4:35:52 PM6/23/11
to dotnetar...@googlegroups.com
Régis,

Para erros eu sugiro o Elmah => http://code.google.com/p/elmah/

Para monitoramento dos eventos, sugiro o Log4Net => http://logging.apache.org/log4net/index.html

É meio chato configurar o Log4Net na primeira vez, mas ele é muito flexível. Por ter trabalhado muito tempo com NHibernate, Castle Project e outras libs open source que utilizam ele, eu me familiarizei.

Dê uma olhada nesse artigo, que é bom para quem está começando com Log4Net http://logging.apache.org/log4net/index.html

Se quiser também ver o que a comunidade está falando sobre log4net e seus concorrentes, dê uma olhada nessa thread do StackOverflow => http://stackoverflow.com/questions/710863/log4net-vs-nlog

HTH

Abs,

Felipe Garcia

2011/6/23 Régis Soares <regis...@gmail.com>

--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br



--
Felipe

Michael Benford

unread,
Jun 24, 2011, 9:27:47 AM6/24/11
to .Net Architects
Eu recomendo o NLog, que você já está usando. Trabalho com ele há
bastante tempo e não tenho nada a reclamar. Pessoalmente eu não me
preocupo em injetar a classe de logging porque acredito que ela não vá
mudar durante a vida da aplicação. Então eu simplesmente faço uso (no
caso do NLog, através do Logger.GetCurrentClassLogger ou
Logger.GetLogger).

Sobre a classe Trace do framework do .NET, fique atento ao fato de seu
funcionamento ser condicionado ao uso da diretiva de compilação TRACE.
Geralmente isso não é um problema, porque tanto as configurações de
Debug quanto de Release do Visual Studio adicionam essa diretiva na
"linha de comando" do compilador. Isso já não é verdade para a classe
Debug, que depende da diretiva DEBUG, e esta só é definida pelo Visual
Studio na configuração de Debug.

[]s

Michael Benford

Acaz Souza Pereira

unread,
Jun 25, 2011, 4:17:54 PM6/25/11
to dotnetar...@googlegroups.com
Eu estou utilizando o Log4Net com Asp.net MVC 3. Estou utilizando os Global Filters do MVC para registrar os logs, assim não fico poluindo minhas classes com coisas de Log.

--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br



--
www.twitter.com/acazsouza

www.acazsouza.com

Bruno Gallego

unread,
Jun 26, 2011, 3:52:38 PM6/26/11
to dotnetar...@googlegroups.com
Achei q o Felipe mandou bem.
 
Para erros eu sugiro o Elmah => http://code.google.com/p/elmah/
Para monitoramento dos eventos, sugiro o Log4Net => http://logging.apache.org/log4net/index.html

Com AOP ou Proxy nao polui nenhuma classe.
AOP acho legal o Postsharp
Proxy tem o Castle.
 

Régis Soares

unread,
Jun 27, 2011, 9:35:00 AM6/27/11
to .Net Architects
Oi Michael,

É verdade, se desabilitar o Trace no build do VS, minha aplicação vai
parar de logar.

Na verdade minha questão aqui não é nem discutir frameworks para log,
pois no meu caso qualquer um que "escute" o trace poderia ter sido
usado (ou usar a classe built-in TextWriterTraceListener). A questão
é: há contra indicação para usar o Trace com a finalidade de log
(gravar em arquivo texto)? A maior vantagem percebida até agora é não
depender de qualquer framework externo (seja para AOP, DI, log, etc).

Abs


On Jun 24, 10:27 am, Michael Benford <mich...@michaelbenford.net>
wrote:
> > Régis Soares- Hide quoted text -
>
> - Show quoted text -

Luiz Carlos Faria

unread,
Jun 28, 2011, 10:41:02 PM6/28/11
to dotnetar...@googlegroups.com
Por falar em Log, 

alguém já usou algum dos outputs baseados em Network UDP. Sempre achei interessante, mas nunca achei algum que pudesse me fornecer um bom suporte para monitoramento online.

Alguém tem algum na manga?

_______________________________________________________________
Luiz Carlos Faria



Reply all
Reply to author
Forward
0 new messages