Gravar registros de Logs em C#

Um arquivo de log pode ser um simples arquivo txt onde são registradas determinadas ações de um usuário, ou ações do próprio sistema. Porém, estes arquivos não devem ser expostos para os usuários do sistema, portanto, é sensato que o conteúdo deste arquivo deve ser constantemente copiado para outro local da rede, ou enviado para um servidor na Internet.

Alguns desenvolvedores costumam camuflar os arquivos txt em outras extensões, como .DAT por exemplo e alguns sistemas mais eficientes usam caracteres criptografados, isso pode ser programado usando um algoritmo simples de criptografia ou usando chaves SSL.

A classe a seguir possui um método para gravar conteúdo em um arquivo .dat. Os dados gravados são a data, a hora e o nome do computador. Para que este exemplo funciona, importe as classes System.IO e System.Net na cláusula using.

class GravaLog
    {
     public void grava(String texto)
     {
       using (StreamWriter outputFile = new StreamWriter("log.dat", true))
       {
         String data = DateTime.Now.ToShortDateString();
         String hora = DateTime.Now.ToShortTimeString();
         String computador = Dns.GetHostName();
         outputFile.WriteLine(data + " " + hora + " (" + computador + ")" + texto);
        }
      }
    }

Sempre que for preciso gravar um registro de log no arquivo, basta instanciar a classe e passar o texto no parâmetro do método grava;

GravaLog gravaLog = new GravaLog();
gravaLog.grava("Sistema iniciado pelo usuário Marcos Mello");
gravaLog.grava("Carregado o módulo de NF-e");
gravaLog.grava("NF-e nº 541278 no valor de R$ 5.645,80 emitida por Marcos Mello");