I am not sure, as to why you would be facing problems. I clearly mentioned that driver has to be of type RemoteWebDriver, because that is where the setLogLevel method has been defined and I dont think it is part of the WebDriver interface.
package raw.selenium;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.logging.FileHandler;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class FetchLogsFromRemoteWebDriverTest {
private RemoteWebDriver driver;
DesiredCapabilities dc;
private String logFileName = "C:/Users/krmahadevan/logs.txt";
@BeforeClass
public void setup() throws SecurityException, IOException {
dc = new DesiredCapabilities();
dc.setBrowserName(DesiredCapabilities.firefox().getBrowserName());
driver = new RemoteWebDriver(new URL(hubURL), dc);
Logger logger = Logger.getLogger(RemoteWebDriver.class.getName());
Handler handler = new FileHandler(logFileName = "C:/Users/krmahadevan/logs.txt", true);
SimpleFormatter newFormatter = new SimpleFormatter();
handler.setLevel(Level.ALL);
handler.setFormatter(newFormatter);
logger.addHandler(handler);
driver.setLogLevel(Level.ALL);
}
@Test
public void f() {
}
@AfterClass
public void tearDown() throws IOException {
driver.quit();
File file = new File(logFileName);
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
StringBuffer sb = new StringBuffer();
String eachLine = null;
while ((eachLine = br.readLine()) != null) {
sb.append(eachLine).append("\n");
}
br.close();
System.out.println("Log contents : \n" + sb.toString());
}
}