Home > SharePoint - Tips & Tricks, SharePoint Technologies > Sua aplicação customizada escrevendo no Logs (ULS) do SharePoint!

Sua aplicação customizada escrevendo no Logs (ULS) do SharePoint!


Olá! Smile

Overview:

O SharePoint possui uma arquitetura gigantesca! Diversos recursos (muitas vezes subutilizados), diversos meios de atender a mesma demanda de maneiras diferentes.

Aí, vem a pergunta: Por que criar algo do zero e não aproveitar o que SharePoint já possui? Ele deixa você fazer isso, não tenha medo! J

Leitura recomendada: http://rodrigoaromano.wordpress.com/2010/10/27/introduo-ao-desenvolvimento-com-sharepoint-2010/.

Vamos utilizar então, a própria estrutura do SharePoint para gravar erros (ou informações para monitorar a saúde da aplicação) nos LOGS (%CommonProgramFiles%\Microsoft Shared\Web Server Extensions\14\LOGS) do SharePoint! J

Cenário:

Muitas vezes, desenvolvendo aplicações para SharePoint, precisamos escrever logs, tratar exceções ou, simplesmente monitorar (trace) da saúde da nossa aplicação.

Alguns escrevem logs de erro em bibliotecas do SharePoint, outros, escrevem no próprio Event Viewer da máquina (geralmente sempre barrado por questões de segurança) ou só jogam o erro em Label para o usuário (muitas vezes também, nem tratam os erros! Gravíssimo!).

Pretendo escrever um artigo mais aprimorado sobre como escrever no LOG. Mas, por enquanto, vamos com esta dica rápida.

SOLUÇÃO:

Não há muito mistério. Para escrever no Log do SharePoint, façamos o seguinte:

Criei um formulário (Visual WebPart: ) com dois TextBox’s (txtValor1 e txtValor2), um Label Resultado (lblResultado) e um Label de Erro (lblErro). Além de um Button (btnSomar) para somar os valores.

Ficando assim:

image

E aqui, o evento do botão de Somar:

Code Snippet
  1. protected void btnSomar_Click(object sender, EventArgs e)
  2.         {
  3.             //evento do botão de somar valores
  4.             try
  5.             {
  6.                 //transformando o valor to TextBox em número inteiro para realizarmos a soma
  7.                 //**aqui forçamos o erro passando um Texto ao invés de um número, deverá gerar uma exceção**
  8.                 int valor1 = Convert.ToInt32(txtValor1.Text);
  9.                 int valor2 = Convert.ToInt32(txtValor2.Text);
  10.                 int resultado = valor1 + valor2;
  11.  
  12.                 lblResultado.Text = resultado.ToString();
  13.             }
  14.             catch (Exception ex)
  15.             {
  16.                 //instanciamos o serviço de Diagnótiscos
  17.                 SPDiagnosticsService diagnosticSvc = SPDiagnosticsService.Local;
  18.  
  19.                 //criamso a categoria, com seus devidos parametros
  20.                 SPDiagnosticsCategory categoria = new SPDiagnosticsCategory("SharePointDemo – MeuTrace", TraceSeverity.Monitorable, EventSeverity.Information);
  21.  
  22.                 //escrevemos no LOG
  23.                 diagnosticSvc.WriteTrace(0, categoria, TraceSeverity.Monitorable, ex.ToString());
  24.                 
  25.                 //exibe mensagem amigável para o usuário, caso necessário.              
  26.                 lblErro.Text = ex.Message;
  27.             }
  28.         }

Ao gerar exceção:

clip_image002

E no Log do SharePoint (%CommonProgramFiles%\Microsoft Shared\Web Server Extensions\14\LOGS):

“01/04/2011 19:09:12.98 w3wp.exe (0x1620) 0x24C8 Unknown SharePointDemo – MeuTrace 0000 Monitorable System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Convert.ToInt32(String value) at SharePointWebParts.Demo.EscrevendoLogDoSharePoint.EscrevendoLogDoSharePointUserControl.btnSomar_Click(Object sender, EventArgs e) 738d9733-dac9-4291-a2c8-6626769b07bb”

clip_image004

É isso aí! =)

Abraço!

Advertisements
  1. January 5, 2011 at 21:16

    Show!!! Parabéns man, muito útil!

  2. January 5, 2011 at 22:56

    😀

    Valeuu!

  3. January 11, 2011 at 14:45

    Importante dizer que esse artigo se aplica apenas ao SharePoint 2010, para o SharePoint 2007 a solução é um pouco mais complexa, veja detalhes em: http://msdn.microsoft.com/en-us/library/aa979522(v=office.12).aspx e http://weblogs.asp.net/erobillard/archive/2008/07/31/sharepoint-trace-logs-and-the-unified-logging-service-uls.aspx .
    Abraços!
    #SharePointRocks

    • January 11, 2011 at 16:19

      Sim, está nas Tags! 😉 .. Mas, agora ficou explícito no comentário. 😀
      Valeu!

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: