O EnterpriseLibrary, além de disponibilizar algumas formas padrão para log, nos permite criar uma customização do TraceListener.
Neste post vou mostrar como criar um CustomTraceListener para logar as informações.
Para modificar o modo com que sua classe gravará as informações basta modificar o método "WriteLine()" e/ou "Write()" inserindo o código para gravar em banco de dados, arquivo, Event Viewer, e-mail ou seja lá qual for sua vontade.
Criando o MyCustomTraceListener
- Adicione uma nova classe chamada "MyCustomTraceListener" ao seu projeto.
- Especifique que a classe deriva "CustomTraceListener".
- Adicione o atributo de classe "ConfigurationElementType" . Especifique o tipo "CustomTraceListenerData" como o parâmetro de atributo.
[ConfigurationElementType(typeof(CustomTraceListenerData))]
public class MyCustomTraceListener : CustomTraceListener
- Sobrescreva o método "TraceData" da classe "CustomTraceListener". Este método é que será chamado pelo EntLib na hora de realizar o trace nos objetos de log.
public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data)
{
if (data is LogEntry && this.Formatter != null)
{
this.WriteLine(this.Formatter.Format(data as LogEntry));
}
else
{
this.WriteLine(data.ToString());
}
}
- Sobrescreva os métodos "Write" e "WriteLine". Estes métodos serão chamados pelo seu TraceData, neles é que você deverá implementar o modo com que deseja salvar os logs de sua aplicação.
public override void Write(string message)
{
//implementação do modo de log
}
public override void WriteLine(string message)
{
//implementação do modo de log
}
Pronto, seu CustomTraceListener está criado. Para utilizá-lo basta adicionar este projeto a sua solução e depois criar um novo TraceListener, adicionando como Type o MyCustomTraceListener.
Nenhum comentário:
Postar um comentário