Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法通过Gradle使用log4j将日志写入日志文件_Java_Gradle_Build.gradle_Cucumber Jvm_Cucumber Java - Fatal编程技术网

Java 无法通过Gradle使用log4j将日志写入日志文件

Java 无法通过Gradle使用log4j将日志写入日志文件,java,gradle,build.gradle,cucumber-jvm,cucumber-java,Java,Gradle,Build.gradle,Cucumber Jvm,Cucumber Java,我正在从事Cucumber TestNg Gradle自动化项目。因为我是Gradle的新手,虽然我在build.Gradle文件中加入了适当的log4j依赖项,但无法解决这个问题。有人能研究一下这个问题,并提供解决方案,或者就哪些日志没有写入名为“ApplicationLogs.log”的日志文件而导致的错误向我提供建议吗 以下是我的项目结构 下面是我的Log4j.properties文件内容 plugins { id 'java' id 'maven-pub

我正在从事Cucumber TestNg Gradle自动化项目。因为我是Gradle的新手,虽然我在build.Gradle文件中加入了适当的log4j依赖项,但无法解决这个问题。有人能研究一下这个问题,并提供解决方案,或者就哪些日志没有写入名为“ApplicationLogs.log”的日志文件而导致的错误向我提供建议吗

以下是我的项目结构

下面是我的Log4j.properties文件内容

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
    }
根记录器选项 下面是我的build.gradle文件内容

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
    }
我发现了问题

问题是你没有使用LoggerHelper

这是我的项目结构:

更新的LoggerHelper类:

测试LoggerHelper是否正在工作。我用main方法添加了一个测试类:

控制台:

日志生成的文件

我发现了这个问题

问题是你没有使用LoggerHelper

这是我的项目结构:

更新的LoggerHelper类:

测试LoggerHelper是否正在工作。我用main方法添加了一个测试类:

控制台:

日志生成的文件


请提供github代码库以解决问题请提供github代码库以解决问题,因为它仍然不起作用。不知道是什么问题。需要检查其他替代方案,如从头开始创建项目。我想我以前使用过这段代码,它们没有错误,但日志没有写入文件。@BalajiSingh.Y我看到了这段代码。该项目不是gradle项目。这造成了一个问题。请从头开始创建项目。如果有帮助的话,请接受这个答案好吗?B:这是一个gradle项目,因此我们看到存在一个.gradle和build.gradle文件,而且每次我构建我的项目时,它都会创建一个build文件夹。B:无论如何,谢谢你的帮助。我已经解决了这个问题,现在一切正常,甚至日志也在生成中。对我来说,它还没有工作。不知道是什么问题。需要检查其他替代方案,如从头开始创建项目。我想我以前使用过这段代码,它们没有错误,但日志没有写入文件。@BalajiSingh.Y我看到了这段代码。该项目不是gradle项目。这造成了一个问题。请从头开始创建项目。如果有帮助的话,请接受这个答案好吗?B:这是一个gradle项目,因此我们看到存在一个.gradle和build.gradle文件,而且每次我构建我的项目时,它都会创建一个build文件夹。B:无论如何,谢谢你的帮助。我已经解决了这个问题,现在一切正常,甚至日志也在生成。
After doing lot of analysis and comparing i found the solution to my question. The solution is very simple only mistake that i need to remove the unwanted plugins used due to which it created all of issues.

When I removed the application plugin as shown below in plugin section it started working properly and even logs started working.

plugins {
        id 'java'
        id 'maven-publish'
        id 'java-library'
        id 'java-gradle-plugin'
        
    }