Introdução
Instalação
Guias
- Engine
- Perfil
- Navegador
- BrowserView
- Navegação
- Conteúdo
- Menu de contexto
- DOM
- JavaScript
- Pop-ups
- Diálogos
- Downloads
- Rede
- Cache
- Cookies
- Proxy
- Autenticação
- Permissões
- Plugins
- Impressão
- Senhas
- Perfis de dados do usuário
- Cartões de crédito
- Mídia
- Zoom
- Corretor ortográfico
- Implantação
- Chromium
Resolução de problemas
- Registro
- Exceções comuns
- A aplicação não termina
- O vídeo não é reproduzido
- Não é possível iniciar sessão na conta Google
- Os dados do usuário não são armazenados
- Esquema de cores
- Falha no início
- Início lento no Windows
- Aplicação .NET que não responde
- Encerramento inesperado do processo Chromium
- Comportamento inesperado
- Fim do suporte do Windows 7/8/8.1
Migração
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