Note: Advice in this article will only work for JxBrowser 6. See the corresponding article for JxBrowser 7 here.(注意:本文中的建议仅适用于JxBrowser6,JxBrowser7相应文章请点击这里。)


Logging in JxBrowser is based on Java Logging, so you can configure JxBrowser logging using standard Java Logging API. By default, all JxBrowser log messages are printed into console output. The default log level is Level.SEVERE.(JxBrowser日志是基于Java日志记录的,因此您可以使用标准Java Logging API配置JxBrowser日志记录。默认情况下,所有JxBrowser日志消息都会打印到控制台输出中。默认日志级别为Level.SEVERE。)


You can change default log level using the "jxbrowser.logging.level" VM parameter. For example:(您可以使用“ jxbrowser.logging.level” VM参数更改默认日志级别。例如:)

-Djxbrowser.logging.level=ALL


Or, you can change default log level using the com.teamdev.jxbrowser.chromium.LoggerProvider class:  (或者,您可以使用com.teamdev.jxbrowser.chromium.LoggerProvider类更改默认日志级别:)

LoggerProvider.setLevel(java.util.logging.Level.SEVERE);

 

Disabling Logging(禁用日志记录)

To disable JxBrowser logging use the following code: (要禁用JxBrowser日志记录,请使用以下代码:)

LoggerProvider.setLevel(java.util.logging.Level.OFF);

 Redirecting Logging to File(将日志重定向到文件)

If you want to redirect log message to a file, then you can use the following way: (如果要将日志消息重定向到文件,则可以使用以下方式:)

import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.LoggerProvider;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
<span class="fr-marker" data-id="0" data-type="false" style="display: none; line-height: 0;"></span><span class="fr-marker" data-id="0" data-type="true" style="display: none; line-height: 0;"></span>
import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.util.logging.*;

/**
 * This sample demonstrates how to redirect all JxBrowser log
 * messages to the '*.log' files.
 */
public class BrowserSample {
    public static void main(String[] args) throws IOException {
        LoggerProvider.setLevel(Level.ALL);
        
        // Redirect Browser log messages to jxbrowser-browser.log
        redirectLogMessagesToFile(LoggerProvider.getBrowserLogger(),
                "D:/jxbrowser-browser.log");

        // Redirect IPC log messages to jxbrowser-ipc.log
        redirectLogMessagesToFile(LoggerProvider.getIPCLogger(),
                "D:/jxbrowser-ipc.log");

        // Redirect Chromium Process log messages to jxbrowser-chromium.log
        redirectLogMessagesToFile(LoggerProvider.getChromiumProcessLogger(),
                "D:/jxbrowser-chromium.log");

        Browser browser = new Browser();
        BrowserView view = new BrowserView(browser);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.add(view, BorderLayout.CENTER);
        frame.setSize(700, 500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

        browser.loadURL("https://google.com");
    }

    private static void redirectLogMessagesToFile(Logger logger, String logFilePath)
            throws IOException {
        FileHandler fileHandler = new FileHandler(logFilePath);
        fileHandler.setFormatter(new SimpleFormatter());

        // Remove default handlers including console handler
        for (Handler handler : logger.getHandlers()) {
            logger.removeHandler(handler);
        }
        logger.addHandler(fileHandler);
    }
}