A importância dos tipos de rastreamento deve ser escolhida não devido ao local onde o rastreamento está no código, mas porque a mensagem rastreada é mais ou menos importante. Exemplo:
Rastreie um evento "Iniciar" ao iniciar um método, que deve representar uma única operação lógica ou um pipeline, juntamente com uma representação em seqüência dos valores dos parâmetros passados para o método.
Use o tipo de início ao iniciar uma operação lógica. Isso não significa que o rastreio inicial deve estar no início de um método, nem significa que um método deve ter um rastreio inicial.
Dito isto, na maioria dos casos, uma operação lógica realmente começará no início do método. Caso contrário, você deve se perguntar se o código foi refatorado corretamente.
Parâmetros de rastreamento também podem ser uma má ideia . Você tem que pensar no que rastrear, caso a caso. Por exemplo, é muito ruim rastrear parâmetros de um método void Authenticate(string userName, string plainPassword)
.
Rastreie um evento "Informações" ao inserir um item no banco de dados.
Depende. Alguns itens devem ser rastreados, mas nem todos os itens.
- Por exemplo, imagine que você está realmente inserindo um item de log no seu banco de dados. Você rastreará logs? E depois registrar rastreamentos? E, em seguida, rastrear o log do rastreamento?
- Outro exemplo: você está inserindo dados confidenciais. Isso requer auditoria. Desde que você auditou a inserção, por que rastreá-la?
Rastreie um evento "Informações" ao seguir um caminho ou outro em uma instrução if / else importante.
Mais uma vez, depende.
Rastrear um "Crítico" ou "Erro" em um bloco de captura, dependendo do clima, é um erro recuperável.
A ação executada após um erro não recuperável pode ser mais do que rastrear. Por exemplo, no lado do servidor, você gostaria de armazenar a exceção no banco de dados para análise posterior. Além disso, algumas exceções são menos importantes que outras e não requerem rastreamento.
Rastreie um evento "Stop" ao concluir a execução do método.
Veja o primeiro ponto.
esclareça a melhor forma de rastrear os tipos de evento verboso e de aviso.
Verbose:
Detalhado é usado para rastrear o que você precisa rastrear quando algo der realmente errado. Isso significa que, na maioria dos casos, você desabilitará o rastreamento de mensagens detalhadas, mas às vezes precisará depurar algumas partes do seu código para entender por que algo falha em um caso extremo.
Você geralmente tem muitas mensagens detalhadas que permitem entender muito bem o fluxo do aplicativo. Isso também significa que essas mensagens devem ser desativadas na maioria das vezes porque:
- caso contrário, o log crescerá muito rápido,
- você não precisa deles na maioria das vezes,
- eles podem conter dados confidenciais sobre o fluxo do aplicativo.
Pense em detalhado como uma ferramenta que você deve usar quando não tiver acesso ao depurador.
Aviso:
O rastreamento do tipo de aviso é usado quando algo errado e importante acontece, mas não é crucial demais para ser tratado como um erro. Por exemplo, pouca RAM pode emitir um aviso, mas não há motivo para rastrear um erro, pois seu aplicativo pode continuar, mesmo que seja mais lento que o normal.
Exemplos:
Exemplo 1: o aplicativo falhou ao abrir o arquivo solicitado pelo usuário. O arquivo existe e não está em uso, as permissões são definidas corretamente, mas algo bloqueia a abertura de um arquivo. Nesse caso, você rastreará um erro , pois seu aplicativo não pode gerenciar este caso e continuará a funcionar conforme o esperado pelo usuário (ou seja, na verdade, leia o arquivo).
Exemplo 2: após a inspeção do erro no primeiro exemplo, você descobre que o erro é causado pelo fato de o caminho do arquivo ter mais de 259 caracteres. Então você refatora seu código para capturar PathTooLongException
. Quando, na próxima vez em que o usuário tentar abrir o mesmo arquivo, a nova versão do aplicativo mostrará uma mensagem explicando que o arquivo é muito longo e deve ser movido para outra pasta para reduzir o caminho completo para abri-lo. esta aplicação. Você também rastreia uma mensagem .
Exemplo 3: seu aplicativo passou vinte segundos abrindo e analisando um arquivo pequeno, enquanto a maioria dos arquivos leva de dez a cem milissegundos para abrir e analisar. Você rastreia um aviso com informações relevantes: o tipo de disco onde o arquivo realmente está, o sistema de arquivos, o tamanho do arquivo, o tempo exato gasto, o tempo em que o computador estava ligado etc. Quando o usuário reclama que são necessários vinte segundos para abrir o arquivo, faça o rastreamento para descobrir o que acontece. Você descobre, por exemplo, que leva muito tempo para carregar os arquivos de um compartilhamento de rede quando o computador acaba de iniciar. Você explica ao usuário que o atraso é devido à rede e não está relacionado ao seu aplicativo.
Exemplo 4: o arquivo aberto é exibido incorretamente. Você ativa o rastreamento detalhado, onde realmente vê como os dados são carregados do arquivo e analisados passo a passo.