C# - Criando um log de auditoria
Neste artigo vamos criar um log de auditoria na linguagem C#. |
Gravar informações de log de uma aplicação é um recurso básico e fundamental para uma aplicação robusta quer por razões de auditoria, segurança, rastreamento ou apenas informação.
Você pode criar o seu próprio log de auditoria ou usar outros recursos para fazer isso. Veja os meus artigos: NET - Apresentando e usando Log4Net - Macoratti e Usando o Serilog
Neste artigo veremos como criar um log de auditoria para projetos simples onde vamos registrar as mensagens em um arquivo texto.
Recursos usados:
Criando um projeto Console
Abra o VS 2017 Community e crie um projeto do tipo Console Application chamado CSharp_LogErros.
A seguir inclua uma classe chamada RegistraLog no projeto via menu Project -> Add Class, com o seguinte código :
using System;
using System.IO;
using System.Reflection;
namespace CSharp_LogErros
{
public class RegistraLog
{
private static string caminhoExe = string.Empty;
public static bool Log(string strMensagem, string strNomeArquivo = "ArquivoLog" )
{
try
{
caminhoExe = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string caminhoArquivo = Path.Combine(caminhoExe, strNomeArquivo);
if (!File.Exists(caminhoArquivo))
{
FileStream arquivo = File.Create(caminhoArquivo);
arquivo.Close();
}
using (StreamWriter w = File.AppendText(caminhoArquivo))
{
AppendLog(strMensagem, w);
}
return true;
}
catch (Exception)
{
return false;
}
}
private static void AppendLog(string logMensagem, TextWriter txtWriter)
{
try
{
txtWriter.Write("\r\nLog Entrada : ");
txtWriter.WriteLine($"{DateTime.Now.ToLongTimeString()} {DateTime.Now.ToLongDateString()}");
txtWriter.WriteLine(" :");
txtWriter.WriteLine($" :{logMensagem}");
txtWriter.WriteLine("------------------------------------");
}
catch (Exception ex)
{
throw ex;
}
}
}
}
|
Nesta classe temos o método estático Log() com dois parâmetros: mensagem e nome do arquivo de log. Sendo que o nome do arquivo de log é opcional.
Agora vamos testar...
No arquivo Program.cs inclua o código abaixo no método Main():
using System;
namespace CSharp_LogErros { class Program { static void Main(string[] args) { RegistraLog.Log(String.Format($"{"Log criado em "} : {DateTime.Now}"), "ArquivoLog"); RegistraLog.Log("Registro de log de auditoria"); WriteLine("Log criado e registrado com sucesso"); ReadLine(); } } } |
Estamos usando o método estático Log da classe RegistraLog e inicialmente informando o nome do arquivo de Log e depois informando apenas a mensagem.
O arquivo de log será criado na pasta bin\Debug.
Abaixo vemos o arquivo criado na pasta do projeto e ao lado o arquivo de log aberto no editor Sublime:
É uma solução bem simples para projetos simples.
Pegue o projeto completo aqui: CSharp_LogErros.zip
E estamos conversados...
"Tomando sobretudo o escudo da fé, com o
qual podereis apagar todos os dardos inflamados do maligno. "
Efésios 6:16
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
ASP .NET - Criando um log de erros para auditoria - Macoratti
ASP .NET - Usando os recursos do Logging com o ... - Macoratti
ASP .NET - Criando um log de erros para auditoria - Macoratti