Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Olá pessoal! Poucos desenvolvedores fazem uso de um dos recursos mais interessantes disponíveis para aplicações ASP.NET, a capacidade de criar traces diretamente a partir do seu código e usá-los para resolver problemas durante a etapa de desenvolvimento. O uso de "técnicas para criação de traces" é algo muito comum: lembra-se de ter escrito um bom e velho "Response.Write" em aplicações ASP Clássico para validar se os dados em uma determinada rotina está conforme o esperado? Pois é... era assim no ASP Clássico, em C, C++, etc Nas aplicações ASP.NET este processo é realmente muito simples: basta habilitar o registro de entradas de trace no arquivo web.config, adicionando a seguinte tag: <trace enabled="true" localOnly="false" pageOutput="false" /> Maiores detalhes sobre a diretiva <trace> do arquivo web.config pode ser obtida em: https://msdn.microsoft.com/en-us/library/6915t83k(v=vs.80).aspx Com a diretiva trace configurada no seu arquivo web.config agora basta adicionar as diretivas de trace em sua aplicação. O desenvolvedor deverá adicionar algumas linhas de código na sua aplicação, para imprimir os valores que precisam ser validados. Para isso, em cada modulo que se deseja utilizer o trace, deve-se adicionar o namespace System.Web. Um exemplo simples do uso de trace em uma página ASP.NET (em C# e .NET Framework 4.5) é mostrado a seguir: using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace TraceSample { public partial class LongRunningPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // // This is just a page where any GET requests will take... // well, very long Trace.Warn("Warning! Entering in the PAGE_LOAD event"); DateTime start = DateTime.Now; int delay = new Random().Next(5000, 15000); Thread.Sleep(delay); DateTime end = DateTime.Now; myLabel.Text = String.Format("Total page exec took:{0} ms", (end - start).TotalMilliseconds); Trace.Write("PAGE_LOAD event finished"); } } } No código acima você encontra duas diretivas: Trace.Warn e Trace.Write ... existem poucas diferenças entre elas, a mais visível é que a primeira irá produzir uma entrada em vermelho na saída do trace. Uma vez que o código da aplicação tenha sido ajustado para criar a saída necessária, você poderá acessar a página e testar a sua aplicação. Após ter executado a página, você poderá visualizar o resultado do trace através do handler TRACE.AXD. Por exemplo, se a página chama-se LongRunning.aspx., você deve primeiro chamar: https://meusite/LongRunning.aspx e depois: Com isso, uma página de trace similar ao seguinte sera exibida:
Ao se clicar em uma das entradas você poderá observer detalhes do trace daquela página, algo similar ao seguinte: Acima podemos ver o resultado das diretivas de trace que foram adicionadas no código da aplicação. Voilá! Agora, o mais um ponto: É possível visualizar o resultado das diretivas Trace.Warn nos logs FREB (ou Failed Request Tracing) do IIS. Basta configurar o seu servidor para gerar este tipo de log (conforme as regras que você estabelecer) e ao visualizá-lo você encontrará as saídas geradas pelo seu aplicativo. Esta é a outra diferença entre as duas diretivas: Trace.Write não irá aparecer nos logs do IIS, e portanto, se precisar usar este recurso de uma forma regular, use somente o Trace.Warn. E finalmente, aquela dica de sempre: não deixe as diretivas de trace habilitadas em servidores de produção! Sempre podem existir questões relacionadas à segurança de sua aplicação e não custa descuidar! É isso ai! Não perca tempo e aproveite para usar este recurso durante o processo de desenvolvimento da sua aplicação.
Abraços, PT |