Created by Thiago Russo
over 7 years ago
|
||
Question | Answer |
pq logging and tracing são importantes? | Qdo seu aplicativo está sendo executado em um servidor de produção, às vezes é impossível anexar um depurador por causa de restrições de segurança ou a natureza da aplicação. Se o aplicativo é executado em vários servidores em um ambiente distribuído, como o Windows Azure, um depurador regular não irá sempre ajudá-lo a encontrar o erro. Devido a isso, é importante que você implemente uma criação de log e uma estratégia de rastreio desde o início |
o que é e pra que serve o tracing? | O rastreamento (tracing) é uma maneira para q vc possa monitorar a execução de seu aplicativo enquanto ele estiver sendo executado. Informações de rastreamento podem ser detalhadas; elas podem mostrar em quais métodos entraram, as decisões que foram tomadas e os erros ou avisos que ocorreram enquanto o aplicativo estava sendo executado. O rastreamento (tracing) pode gerar uma grande qtde de informações e é algo que vc possa ativar qdo precisar investigar um problema em um aplicativo de produção. |
o que é e pra que serve o logging? | Logging está sempre ativado e é usado para reportar erro. Vc pode configurar seu logging para coletar os dados de alguma maneira centralizada. Talvez vc queira um e-mail ou mensagem de texto qdo existe uma questão séria. Outros erros podem ser registrados (logged) em um arquivo ou um banco de dados. |
classe Debug Qual namespace? pra que é útil? Exemplo. |
Image:
Debug Class (image/png)
|
classe TraceSource exemplo |
Image:
Trace Source (image/png)
|
classe TraceSource opções diferentes para o enum TraceEventType: Critical Error Warning Information | ■ Critical: é a opção mais severa. Ela deve ser usada c/ moderação e apenas para erros mto graves e irreparáveis. ■ Error: Este membro tem uma prioridade ligeiramente inferior a Critical, mas ainda indica q algo está errado no aplicativo. Deve normalmente ser usado p/ sinalizar um problema q tem sido tratado ou recuperado. ■ Warning: indica q algo incomum ocorreu e pode valer a pena investigar mais. Ex: vc percebe q uma determinada operação de repente leva + tempo para processar do q o normal ou vc sinaliza um aviso de q o servidor está com pouca memória. ■ Information: Esse valor indica q o processo está sendo executado corretamente, mas há algumas informações interessantes para incluir no arquivo de saída de rastreamento. Ex: uma informação de um usuário conectado em um sistema ou de q algo foi adicionado ao BD. |
classe TraceSource opções diferentes para o enum TraceEventType: Verbose Stop, Start, Suspend, Resume, Transfer | Verbose: é o valor mais livre relacionados toda a severidade no enum. Ele deve ser usado para obter informações q não estão indicando nada de errado com a aplicação e é provável que aparecem em grande qtde. Ex: qdo todos os métodos de instrumentação em um tipo rastreiam seu início e fim, é típico para usar o tipo de evento detalhado. ■ Stop, Start, Suspend, Resume, Transfer: esses tipos de eventos não são indicações de gravidade, mas marcam o evento de rastreamento, relacionados com o fluxo lógico do aplicativo. Eles são conhecidos como tipos de atividades de eventos e marcam uma operação lógica de início ou parada, ou transferindo o controle para outra operação lógica. |
classe TraceSource 2º e 3º parâmetros | O 2º argumento para o método de trace é o número de identificação de evento. Este nº não tem qlq significado predefinido; é apenas uma outra maneira de agrupar os eventos. Vc poderia, por ex, agrupar seu BD com números de chamadas 10000-10999 e suas chamadas de serviço da web como 11000-11999 a mais facilmente dizer de que área da sua aplicação uma entrada de rastreio está relacionada. O 3º parâmetro é uma string que contém a mensagem que deve ser rastreada. Qdo vc estiver usando o método TraceData, vc pode passar argumentos extras q devem estar de saída para o rastreamento. |
o que são Listeners para as classes Debug e TraceSource? |
Image:
Trace Listeners (image/png)
|
configure TraceListener | |
configurando Listener com arquivo de configuração | |
O que é um switch (interruptor) no arquivo de configuração? | O arquivo de configuração tb define um switch (interruptor), o qual é utilizado por um trace source para determinar se ele deverá fazer alguma coisa com uma msg de rastreio q recebe. Dessa forma, vc pode determinar quais msgs de rastreamento q vc quer ver. Reduzindo a qtde de msgs melhora o desempenho e vai resultar num arquivo de saída menor. Depois de ter encontrado a área particular q deseja focar, vc pode definir o seu switch para um nível mais detalhado. Embora os switches de trabalhem para um source trace completo, um filtro é aplicado a um listener individual. Qdo vc tem vários listeners para um único source trace, vc pode usar filtros para determinar quais eventos de rastreamento sejam transformados pelo listener. Poderia ter um listener q envia msgs de texto apenas para os eventos críticos em uma fonte de rastreamento, por exemplo. |
EventLog |
Image:
Event Log (image/png)
|
os logs do exemplo anterior podem ser visualizados pelo Windows Event Viewer |
Image:
Event Viewer (image/png)
|
Reading data from the event log | |
EntryWritten |
Image:
Entry Writtern (image/png)
|
Want to create your own Flashcards for free with GoConqr? Learn more.