I am working on Cucumber TestNg Gradle automation project. As I am new to Gradle and not able to figure the issue though I have put in appropriate log4j dependencies in build.gradle file. Can somebody look into this issue and provide the solutions or advise me on what went wrong due to which logs are not written to log file called “ApplicationLogs.log”
Below is my project structure
Below is my Log4j.properties file contents
Root logger option
log4j.rootLogger=INFO, RFILE,STDOUT # Console Appender log4j.appender.name=STDOUT log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender log4j.appender.STDOUT.Target=System.out log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout log4j.appender.STDOUT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] [%c{1}] - [%M] %m%n # Rolling File Appender log4j.appender.name=RFILE log4j.appender.RFILE=org.apache.log4j.RollingFileAppender log4j.appender.RFILE.File=./Automation_Report/logs/ApplicationLogs.log log4j.appender.RFILE.threshold=INFO log4j.appender.RFILE.maxFileSize=25MB log4j.appender.RFILE.maxBackupIndex=100 log4j.appender.RFILE.layout=org.apache.log4j.PatternLayout log4j.appender.RFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] [%c{1}] - [%M] %m%n
Below is my build.gradle File Contents
plugins { id 'java' id 'maven-publish' id 'java-library' id 'java-gradle-plugin' id 'application' } apply plugin: 'java' repositories { mavenCentral() jcenter() } task deleteGraphicsAssets(type: Delete) { delete "build" } version '1.0-SNAPSHOT' sourceCompatibility = 1.8 dependencies { // This dependency is exported to consumers, that is to say found on their compile classpath. api 'org.apache.commons:commons-math3:3.6.1' // This dependency is used internally, and not exposed to consumers on their own compile classpath. implementation 'com.google.guava:guava:28.2-jre' implementation gradleApi() //Cucumber testImplementation 'io.cucumber:cucumber-java:4.8.0' //compile group: 'io.cucumber', name: 'cucumber-jvm', version: '4.8.0', ext: 'pom' testImplementation 'io.cucumber:cucumber-jvm:4.8.0' compile group: 'io.cucumber', name: 'cucumber-core', version: '4.8.0' // testImplementation 'io.cucumber:cucumber-core:4.8.0' compile group: 'io.cucumber', name: 'cucumber-testng', version: '4.8.0' //testImplementation 'io.cucumber:cucumber-testng:4.8.0' implementation 'io.cucumber:cucumber-picocontainer:4.7.4' testImplementation 'io.cucumber:cucumber-gherkin:5.1.0' //TestNg // testImplementation 'org.testng:testng:6.14.3' testCompile group: 'org.testng', name: 'testng', version: '6.14.3' //Reports testImplementation 'com.aventstack:extentreports:4.1.7' testImplementation 'com.aventstack:extentreports-cucumber4-adapter:1.0.12' //Maven Compiler , Surefire Plugin ,Poi testImplementation 'org.apache.maven.plugins:maven-surefire-plugin:2.22.2' testImplementation 'org.apache.maven.plugins:maven-compiler-plugin:3.8.1' testImplementation 'org.apache.poi:poi-ooxml:4.1.2' //Log4j & SLF4J compile group: 'log4j', name: 'log4j', version: '1.2.17' // #Rest Assured Apis testImplementation 'io.rest-assured:rest-assured:3.3.0' testImplementation 'org.json:json:20180813' testImplementation 'com.googlecode.json-simple:json-simple:1.1.1' //#Selenium Apis compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: '3.141.59' implementation 'com.paulhammant:ngwebdriver:1.1.4' compile group: 'org.seleniumhq.selenium', name: 'selenium-htmlunit-driver', version: '2.52.0' implementation 'org.seleniumhq.selenium:selenium-java:4.0.0-alpha-4' //testImplementation 'org.hamcrest:hamcrest-all:2.2' } test { testLogging.showStandardStreams = true systemProperties System.getProperties() } configurations { cucumberRuntime.extendsFrom testImplementation } task cucumber() { dependsOn assemble,testClasses doLast { javaexec { main = "io.cucumber.core.cli.Main" classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output args = ['--plugin', 'pretty', '--plugin', 'json:target/AppleBrands.json', '--plugin', 'com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:Report', '--glue','com.apple.brands.test.stepdefinition', 'src/test/resources','src/main/java', '--tags', '@Api' ] } } } tasks.test { finalizedBy cucumber }
Advertisement
Answer
I found the issue.
The problem was that you didn’t use the LoggerHelper.
This is my project structure :
Updated LoggerHelper class :
To test whether LoggerHelper is working or not. I added one Test class with main method :
Console :
The log generated file.