DOM
SWT
Integração
Registro de logs
IDE
Chromium features
Redirecionando os logs do JxBrowser com o SLF4J
Este tutorial mostra como redirecionar os logs do JxBrowser com o SLF4J.
Pré-requisitos
Para realizar este tutorial, você precisará de:
- Git.
- Java 8 ou superior.
- Uma licença válida do JxBrowser. Pode ser de avaliação ou comercial. Para mais informações sobre o licenciamento , consulte o guia Licenciamento.
Por que redirecionar os logs
O log do JxBrowser é baseado em java.util.logging, uma estrutura de log que vem com o JDK.
Por padrão, os logs do JxBrowser não são capturados por outras bibliotecas de log mais avançadas e podem se perder.
Neste tutorial, vamos demonstrar como redirecionar e capturar logs do JxBrowser com a ajuda do SLF4J.
Configurando um projeto
O código do aplicativo de exemplo para este tutorial está disponível junto com outros exemplos de um repositório do GitHub como um projeto baseado no Gradle.
Obtendo o código
Para obter o código, execute os seguintes comandos:
$ git clone https://github.com/TeamDev-IP/JxBrowser-Examples
$ cd JxBrowser-Examples/tutorials/jul-logs-redirect
Adicionando a licença
Para executar este tutorial, é necessário configurar uma chave de licença.
Adicionando dependências do Gradle
Neste exemplo, utilizamos a biblioteca Log4j com a facade SLF4J.
No arquivo build.gradle.kts
, adicionamos as seguintes dependências:
dependencies {
// Adiciona uma dependência à API SLF4J.
implementation("org.slf4j:slf4j-api:1.7.36")
// Adiciona uma dependência à ligação Log4j para SLF4J.
implementation("org.slf4j:slf4j-log4j12:1.7.36")
// Adiciona uma dependência com o handler SLF4J para JUL.
implementation("org.slf4j:jul-to-slf4j:1.7.36")
}
Configuração do Log4J
O próximo passo é adicionar o arquivo log4j.properties
para configurar o Log4j.
Vamos configurar os níveis de log e o caminho para o arquivo de log:
# Definir o registador de raiz com o arquivo appender.
log4j.rootLogger = ALL, FILE
# Definir o appender de arquivo.
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=log/log.out
# Define o layout para o appender de arquivos.
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Código de aplicação
Adicione o seguinte código ao método main()
:
Logger.level(Level.DEBUG);
var jxBrowserLogger =
LogManager.getLogManager().getLogger("com.teamdev.jxbrowser");
for (var handler : jxBrowserLogger.getHandlers()) {
jxBrowserLogger.removeHandler(handler);
}
jxBrowserLogger.addHandler(new SLF4JBridgeHandler());
var engine = Engine.newInstance(HARDWARE_ACCELERATED);
engine.close();
Agora vamos ver o que fizemos aqui:
Definir o nível de log do JxBrowser para
DEBUG
. Para mais informações sobre o log do JxBrowser, consulte o guia Logs.Logger.level(Level.DEBUG);
Obtenha o registador JxBrowser e remova os handlers existentes ligados a ele.
var jxBrowserLogger = LogManager.getLogManager().getLogger("com.teamdev.jxbrowser"); for (var handler : jxBrowserLogger.getHandlers()) { jxBrowserLogger.removeHandler(handler); }
Utilizamos
SLF4JBridgeHandler
. Ele encaminha os logs da JUL para o SLF4J. Adicione oSLF4JBridgeHandler
ao logger do JxBrowser:jxBrowserLogger.addHandler(new SLF4JBridgeHandler());
Para que o JxBrowser escreva registos de log, crie um
Engine
:var engine = Engine.newInstance(HARDWARE_ACCELERATED); engine.close();
Aqui está o código Java completo:
import static com.teamdev.jxbrowser.engine.RenderingMode.HARDWARE_ACCELERATED;
import com.teamdev.jxbrowser.browser.Browser;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.logging.Level;
import com.teamdev.jxbrowser.logging.Logger;
import java.util.logging.LogManager;
import org.slf4j.bridge.SLF4JBridgeHandler;
/**
* Este exemplo demonstra como capturar registos do JxBrowser utilizando a API SLF4J.
*/
public final class LoggingRedirectExample {
public static void main(String[] args) {
// Configurar o nível de registo do JxBrowser.
Logger.level(Level.DEBUG);
// Obter o logger do JxBrowser.
var jxBrowserLogger =
LogManager.getLogManager().getLogger("com.teamdev.jxbrowser");
// Remove os manipuladores existentes ligados ao registador JxBrowser.
for (var handler : jxBrowserLogger.getHandlers()) {
jxBrowserLogger.removeHandler(handler);
}
// Adicionar SLF4JBridgeHandler ao logger JxBrowser para encaminhar registos de log para o SLF4j.
jxBrowserLogger.addHandler(new SLF4JBridgeHandler());
// Criar e executar o motor Chromium.
var engine = Engine.newInstance(HARDWARE_ACCELERATED);
engine.close();
}
}
Todos os logs do JxBrowser serão salvos no arquivo log/log.out
que foi configurado em nosso arquivo log4j.properties
.
Resumo
Neste tutorial, demonstramos como você pode redirecionar os logs do JxBrowser com a API do SLF4J, configurando o Log4j.