简体   繁体   English

如何配置Selenium的日志级别?

[英]How to configure log level for Selenium?

I have a project with Selenium and logging with Slf4j . 我有一个使用Selenium的项目,并使用Slf4j日志记录。 I need set the log level for selenium - INFO . 我需要设置硒的日志级别INFO I try use WebDriver.setLogLevel(Level.INFO) but log anyway stay DEBUG . 我尝试使用WebDriver.setLogLevel(Level.INFO)但无论如何WebDriver.setLogLevel(Level.INFO)记录日志DEBUG

WebDriver chrome = new ChromeDriver(chromeOptions());
chrome.setLogLevel(Level.INFO);

My logback.xml 我的logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">

        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg %n
            </Pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level>
        </filter>
    </appender>

    <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>log/log.%d{yyyy-MM-dd}.log</FileNamePattern>

             <!--keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <encoder>
            <Pattern>%d{HH:mm:ss} %-5level %logger{35} - %msg %n</Pattern>
        </encoder>
        <maxFileSize>5MB</maxFileSize>
    </appender>

    <logger name="org.codingpedia" additivity="false" encoding="UTF8">
        <level value="INFO" />
        <appender-ref ref="consoleAppender" />
    </logger>

    <root>
        <level value="DEBUG" encoding="UTF8" />
        <appender-ref ref="consoleAppender" />
        <appender-ref ref="fileAppender"/>
    </root>
</configuration>

My idea is all Trowable write into a log file, all info about Selenium requests only into the console. 我的想法是将所有Trowable写入日志文件,将有关Selenium请求的所有信息仅写入控制台。 But Selenium persistent using DEBUG level. 但是Selenium坚持使用DEBUG级别。

How to set log level INFO for Selenium. 如何为Selenium设置日志级别INFO Thank You. 谢谢。

UPDATE 1 更新1

I fined (thanks to @Ratmir Asanov) solution, but it requires knowing key for log's DesiredCapabilities . 我优化了(由于@Ratmir Asanov)解决方案,但是它需要知道log的DesiredCapabilities密钥。

ChromeOptions options = new ChromeOptions();
options.setCapability("What key?", getCap());

DesiredCapabilities getCap() {
    DesiredCapabilities caps = DesiredCapabilities.chrome();
    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.PERFORMANCE, Level.INFO);
    logPrefs.enable(LogType.PROFILER, Level.INFO);
    logPrefs.enable(LogType.BROWSER, Level.INFO);
    logPrefs.enable(LogType.CLIENT, Level.INFO);
    logPrefs.enable(LogType.DRIVER, Level.INFO);
    logPrefs.enable(LogType.SERVER, Level.INFO);
    caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
    return caps;
}

Use the following code when you are creating an instance of WebDriver: 创建WebDriver实例时,使用以下代码:

driver = new ChromeDriver(getCap());

Hope it helps you! 希望对您有帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM