É importante ter sempre um método ou framework que grava os possíveis erros existentes no aplicativo. Esse método grava todo erro em forma de XML. O primeiro passo é gerar no aplicativo o AppSettings que controla o erro, isto é, 0 ou 1. Depois é necessário gerar outro AppSettings com o endereço full do arquivo.
O método precisa passar três parâmetros do tipo String. Descrição, Processo e Informação. (Code 1.1)
public bool Write(string Description, string Process,string Information)
Se o desenvolvedor esquecer de colocar o AppSettings e chamar o método, não será executado porque existe a verificação. (Code 1.2)
if (System.Configuration.ConfigurationManager.AppSettings["Trac"] != null)
Para controlar a aplicação na geração do erro ou não, precisa ter o valor 0 ou 1 pois o mesmo é verificado. (Code 1.3)
bool started = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["Trac"]);
Dentro do método também é verificado se o arquivo existe, se existir ele pega o caminho do arquivo, se não ele precisa gerar. (Code 1.4)
string path = System.Configuration.ConfigurationManager.AppSettings["TraceFullPath"];
logs.ReadXml(path);
Segue o método completo. (Code 1.5)
public bool WriteLogErro(string Description, string Process, string Information)
TraceFile logs = new TraceFile();
TraceFile.TraceRow log = logs.Trace.NewTraceRow();
log.Description = Description;
log.Process = Process;
log.Information = Information;
logs.Trace.Rows.Add(log);
logs.WriteXml(path);
O Code 1.5 mostra todo o método responsável pelo trace de log do aplicativo. Procure ter sempre esse tipo de método para gravar todos os possíveis erros e todos os processos. Você também pode colocar o método como estático, assim não precisa criar uma instância da classe para chamar o método.
Para exemplificar, veja como fica no arquivo de configuração. (Code 1.6). Com o valor 1 o código vai gravar o trace.