Registro

Este guia descreve como configurar o registro para a biblioteca.

A causa raiz de muitos problemas pode ser detectada através da análise das mensagens de registro ou log do DotNetBrowser.

Por padrão, o registro no DotNetBrowser está desativado. Mas se encontrar um problema ou observar um comportamento inesperado, recomendamos que faça o seguinte: 1. Configure o DotNetBrowser para salvar todas as mensagens de log em um arquivo. 2. Reproduza o problema. 3. Crie um ticket com as mensagens de registro recolhidas para investigação posterior.

Níveis de registro

O DotNetBrowser suporta os seguintes níveis de registro: All > Verbose > Information > Warning > Error > Critical > Off.

O nível Off pode ser utilizado para desativar completamente o registro, e All é utilizado para ativar o registro de todas as mensagens, incluindo as mensagens do Chromium.

Você pode alterar o nível de registro utilizando a propriedade LoggerProvider.Instance.Level.

Para mais informações sobre os níveis de registro, consulte Descrição do MSDN.

Exemplo: Definição do nível de registro

Para salvar todas as mensagens de registro com o nível de registro Verbose e superior, utilize a API de regisrto do DotNetBrowser, conforme mostrado no exemplo de código abaixo:

using DotNetBrowser.Logging;
using System.Diagnostics;
// ...
LoggerProvider.Instance.Level = SourceLevels.Verbose;
Imports DotNetBrowser.Logging
Imports System.Diagnostics
' ...
LoggerProvider.Instance.Level = SourceLevels.Verbose

Registro num arquivo

Para imprimir todas as mensagens de registro em um arquivo, utilize a propriedade LoggerProvider.Instance.FileLoggingEnabled da API de registro do DotNetBrowser, tal como mostrado no exemplo de código abaixo:

using DotNetBrowser.Logging;
// ...
LoggerProvider.Instance.FileLoggingEnabled = true;
LoggerProvider.Instance.OutputFile = "C:\\log.txt";
Imports DotNetBrowser.Logging
' ...
LoggerProvider.Instance.FileLoggingEnabled = True
LoggerProvider.Instance.OutputFile = "C:\log.txt"

No exemplo acima, o valor da propriedade LoggerProvider.Instance.OutputFile representa um caminho absoluto ou relativo para um arquivo onde as mensagens de registro são armazenadas.

Redirecionar o registro DotNetBrowser

O DotNetBrowser utiliza o TraceSource para o seu registro. É possível redirecionar os logs do DotNetBrowser para outro logger que é usado na sua aplicação. Para este efeito, é necessário criar a sua própria classe que deriva de TraceListener e efetua o redirecionamento.

Por exemplo, é este o aspecto que pode ter para a Serilog:

namespace Example
{
    public class SerilogTraceListener : TraceListener
    {
        private readonly string initializeData;
        private readonly Lazy<ILogger> logger;

        public SerilogTraceListener(string initializeData)
        {
            this.initializeData = initializeData;
            logger = new Lazy<ILogger>(() => Log.ForContext("Context", initializeData));
        }

        public override void Write(string message)
        {
            logger.Value.Information(message);
        }

        public override void WriteLine(string message)
        {
            logger.Value.Information(message);
        }
    }
}
Namespace Example
    Public Class SerilogTraceListener
        Inherits TraceListener

        Private ReadOnly initializeData As String
        Private ReadOnly logger As Lazy(Of ILogger)

        Public Sub New(ByVal initializeData As String)
            Me.initializeData = initializeData
            logger = New Lazy(Of ILogger)(Function()
                Return Log.ForContext("Context", initializeData)
            End Function)
        End Sub

        Public Overrides Sub Write(ByVal message As String)
            logger.Value.Information(message)
        End Sub

        Public Overrides Sub WriteLine(ByVal message As String)
            logger.Value.Information(message)
        End Sub
    End Class
End Namespace

Em seguida, é necessário configurar a sua classe trace listener para TraceSource. Por exemplo, isto pode ser feito através de App.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <system.diagnostics>
    <trace autoflush="true"/>
    <sources>
      <source name="Browser" switchValue="All">
        <listeners>
          <add name="SerilogTraceListener"
               type="Example.SerilogTraceListener, ExampleAssembly"
               initializeData="DotNetBrowser" />
        </listeners>
      </source>
      <source name="Process" switchValue="All">
        <listeners>
          <add name="SerilogTraceListener"
               type="Example.SerilogTraceListener, ExampleAssembly"
               initializeData="DotNetBrowser" />
        </listeners>
      </source>
      <source name="IPC" switchValue="All">
        <listeners>
          <add name="SerilogTraceListener"
               type="Example.SerilogTraceListener, ExampleAssembly"
               initializeData="DotNetBrowser" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
</configuration> 

Você pode encontrar mais informações sobre a configuração dos listeners de rastreio no artigo correspondente: Como fazer: Criar e Inicializar Fontes de Rastreamento

Go Top