Your SlideShare is downloading. ×
Log4net
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Log4net

1,334
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,334
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Log4Net Sérgio Agostinho  sagostinho@viatecla.pt www.viatecla.com 12Fev09  ViaTecla Software Conceitos básicos e extensões
  • 2. Agenda
    • Motivação
      • Porquê logging ?
      • Como fazer logging ?
    • Conceitos básicos
      • Níveis de logging
      • Código C#
      • Appenders : como registar
      • Layouts : o que registar
      • Exemplos de configuração via XML
    • Extensões
      • Caso prático: site errors à lá VT
      • Tecnologias de legado: classic ASP
    • Outras considerações
      • Desempenho
      • O que há mais?
      • Mais Informações
    • Feedback
      • A vossa experiência
  • 3.
    • Detecção e correcção de erros
      • Depois de deployed o site/aplicação está fora da nossa máquina...
    • Segurança
      • Queremos saber quem fez o quê e como
    • Recolha de dados
      • Para fazer estatísticas de utilização
    Porquê logging ?
  • 4.
    • Console.WriteLine()
      • Testes específicos
    • Email.Send()
      • Site errors para feedback imediato
    • Windows System Event Log
      • Framework com persistência
    • My Mega Logger Class
      • Comportamento à medida
    • Log4Net
      • Logging básico completo out of the box
      • A maior parte da complexidade está na configuração e não no código
      • Framework open-source e extensível
    Como fazer logging ?
  • 5.
    • Debug
      • Outputs para fases de testes
    • Info
      • Informação útil (ex: inicialização, compra concluída com sucesso, etc.)
    • Warn
      • Situação anormal que embora não seja impeditiva, pode vir a ser problemática... (ex: verificação de consistência)
    • Error
      • Algo correu mal e impediu que uma operação fosse concluída com sucesso (ex: parâmetros em falta, chamada ao Scriptor falhou...)
    • Fatal
      • Algo correu muito mal e a própria interface com o utilizador não pode ser vista (ex: excepção de topo não tratada, algo que envolva €€€!)
    Níveis de logging
  • 6. Código C# // inicialização via app/web.config: XmlConfigurator.Configure(); ILog logger = LogManager.GetLogger(typeof(MyClass)); // inicialização via xml externo: FileInfo file = new FileInfo(“myapp.xml”); XmlConfigurator.Configure(file); ILog logger = LogManager.GetLogger(typeof(MyClass)); // utilização: string message; Exception e; logger.Debug(e); logger.Debug(message, e); // ... logger.Info(e); // ... logger.Warn(e); // ... logger.Error(e); // ... logger.Fatal(e); // ...
  • 7.
    • AdoNetAppender
    • AnsiColorTerminalAppender
    • AspNetTraceAppender
    • ColoredConsoleAppender
    • ConsoleAppender
    • EventLogAppender
    • FileAppender
    • LocalSyslogAppender
    • MemoryAppender
    Appenders : como registar
    • NetSendAppender
    • OutputDebugStringAppender
    • RemoteSyslogAppender
    • RemotingAppender
    • RollingFileAppender
    • SmtpAppender
    • TelnetAppender
    • TraceAppender
    • UdpAppender
  • 8.
    • ExceptionLayout
    • PatternLayout
    • RawTimeStampLayout
    • RawUtcTimeStampLayout
    • SimpleLayout
    • XmlLayout
    • XmlLayoutSchemaLog4j
    Layouts : o que registar
  • 9.
    • O que é preciso?
      • Declaração de uma secção log4net (só para app/web.config)
      • Nessa secção preencher a secção appenders e root
    • Exemplos
      • FileAppender (Windows Forms)
      • Múltiplos RollingFileAppender (ASP.NET)
      • RollingFileAppender + SmtpAppender com diferentes níveis (ASP.NET)
    Configuração via XML
  • 10.
    • Desafio
      • Site errors na VT não são feitos via Log4Net, devido a requisitos específicos (contexto Web e visualização)
    • Solução
      • Estender o Log4Net com classes appender e layout personalizadas.
    Caso prático: site errors à lá VT (I)
  • 11.
    • VTSmtpAppender
      • Estende a classe SmtpAppender
      • Redefine o método SendEmail
    • VTEmailLayout
      • Estende a classe LayoutSkeleton
      • Redefine o método Format
    Caso prático: site errors à lá VT (II)
  • 12.
    • Desafio
      • Como usar Log4Net em sites ASP clássicos?
    • Solução
      • Fazer uma biblioteca .NET wrapper do Log4Net e compilá-la em modo de compatibilidade COM.
      • É preciso um novo appender pela ausência de contexto HTTP.
      • Não há Web.config.
    Tecnologias legado: classic ASP (I)
  • 13.
    • AspSmtpAppender
      • Estende a classe SmtpAppender
      • Redefine o método SendEmail
      • Não usa o HttpContext
    • Instruções
      • Ver ficheiros em anexo
    Tecnologias legado: classic ASP (II)
  • 14.
    • Arquitectura e loggers built-in
      • O mais simples, portáveis e leves possíveis
    • Excepções dentro dos loggers
      • Não são propagadas (mas vísiveis no output do Visual Studio)
    • Controlo fino de desempenho
      • A interface ILog disponibiliza flags para tal ( IsDebugEnabled , IsInfoEnabled , etc)
    • Layouts
      • O uso de certas opções do PatternLayout usa mecanismos de reflexão (nome do método, nome da classe, etc)!
    • Estensões
      • A bola está do nosso lado...
    Desempenho
  • 15.
    • Os restantes Appenders , Layouts e respectivas propriedades
    • Filters e Object Renderers
    • Configuração via API
    • Hierarchical Logging
    • Logging Repositories
    • Log4Net para .NET 1.0, .NET 1.1, Compact Framework , Mono ...
    O que há mais para ver
  • 16.
    • Log4Net (sítio oficial do Apache)
      • http://logging.apache.org/log4net/
    • Log4Net Overview (manual intermédio)
      • http://www.recneps.co.uk/downloads/log4NetOverview.pdf
    • Ficheiros em anexo
      • http://sharepoint.viatecla.pt/devvt/Lists/Sessoes/DispForm.aspx?ID=38
    Mais informações
  • 17. www.viatecla.com | (+351) 212 723 500 Obrigado pela vossa atenção!