A importância dos tipos de rastreio deve ser escolhida não por causa de onde o rastreio está no código, mas porque a mensagem rastreada é mais ou menos importante. Exemplo:
Trace a "Start" event when begining a method, which should represent a single logical operation or a pipeline, along with a string representation of the parameter values passed in to the method.
Use o tipo de início ao iniciar uma operação lógica. Ponto. Isso não significa que o rastreio de início deve estar no início de um método, nem significa que um método deve ter um rastreio de início.
Dito isto, na maioria dos casos, uma operação lógica será realmente iniciada 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 o que rastrear, caso a caso. Por exemplo, é muito ruim rastrear parâmetros de um método void Authenticate(string userName, string plainPassword)
.
Trace an "Information" event when inserting an item into the database.
Depende. Alguns itens devem ser rastreados, mas nem todos os itens.
- Por exemplo, imagine que você esteja realmente inserindo um item de log em seu banco de dados. Você rastreará logs? E, em seguida, rastreios de log? E, em seguida, rastrear o registro do rastreamento?
- Outro exemplo: você está inserindo dados confidenciais. Isso requer auditoria. Como você auditou a inserção, por que rastreá-la?
Trace an "Information" event when taking one path or another in an important if/else statement.
Novamente, isso depende.
Trace a "Critical" or "Error" in a catch block depending on weather this is a recoverable error.
A ação executada após um erro não recuperável pode ser mais do que um rastreio. Por exemplo, do 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 exigem rastreio.
Trace a "Stop" event when finishing the execution of the method.
Veja o primeiro ponto.
please clarify when best to trace Verbose and Warning event types.
Verboso:
O Verbose é usado para rastrear o que você precisa rastrear quando algo está realmente errado. Isso significa que na maioria dos casos, você desabilitará o rastreamento de mensagens detalhadas, mas às vezes, você precisará depurar algumas partes do seu código para entender por que algo falha em um caso limite.
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 maior parte do tempo,
- eles podem conter dados confidenciais sobre o fluxo do aplicativo.
Pense no verbose como uma ferramenta que você precisa usar quando não tem acesso ao depurador.
Aviso:
O rastreamento de tipo de aviso é usado quando algo errado e importante acontece, mas não é muito crucial para ser tratado como um erro. Por exemplo, a baixa RAM pode emitir um aviso, mas não há motivo para rastrear um erro, já que seu aplicativo pode continuar, mesmo que seja mais lento que o normal.
Exemplos:
-
Exemplo 1: o aplicativo não conseguiu abrir o arquivo que o usuário solicitou para abrir. O arquivo existe e não está em uso, as permissões estão definidas corretamente, mas algo bloqueia a abertura de um arquivo. Nesse caso, você rastreará um erro , já que seu aplicativo não pode gerenciar esse caso e continuar a funcionar conforme o esperado pelo usuário (por exemplo, ler 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, 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 encurtar o caminho completo para abrir esse arquivo. esta aplicação. Você também rastreia uma mensagem . -
Exemplo 3: seu aplicativo passou vinte segundos abrindo e analisando um pequeno arquivo, 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 em que o arquivo realmente está, o sistema de arquivos, o tamanho do arquivo, o tempo exato gasto, a hora em que o computador estava ligado etc. o usuário reclama que leva vinte segundos para abrir o arquivo, você pega o rastreamento para descobrir o que acontece. Você acha, por exemplo, que leva tanto 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 rastreio detalhado onde você realmente vê como os dados são carregados do arquivo e depois analisados, passo a passo.