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

问题描述

我正在从事Cucumber TestNg Gradle自动化项目。由于我是Gradle的新手,尽管我在build.gradle文件中放入了适当的log4j依赖项,却无法解决问题。有人可以调查这个问题并提供解决方案,或者就由于未将哪些日志写入名为“ ApplicationLogs.log”的日志文件而导致的问题向我提供建议

下面是我的项目结构

enter image description here

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

根记录器选项

io.changock.migration.api.exception.ChangockException: Error in method[ChangelogInitDatabase.initDatabaseParametre] : Parameter of type [ObjectMapper] must be an interface
        at io.changock.runner.core.MigrationExecutor.processExceptionOnChangeSetExecution(MigrationExecutor.java:179)
        at io.changock.runner.core.MigrationExecutor.processSingleChangeSet(MigrationExecutor.java:97)
        at io.changock.runner.core.MigrationExecutor.lambda$processSingleChangeLog$2(MigrationExecutor.java:89)
        at io.changock.runner.core.MigrationExecutor.executeInTransactionIfStrategyOrUsualIfNot(MigrationExecutor.java:75)
        at io.changock.runner.core.MigrationExecutor.processSingleChangeLog(MigrationExecutor.java:89)
        at io.changock.runner.core.MigrationExecutor.lambda$processAllChangeLogs$1(MigrationExecutor.java:83)
        at io.changock.runner.core.MigrationExecutor.executeInTransactionIfStrategyOrUsualIfNot(MigrationExecutor.java:75)
        at io.changock.runner.core.MigrationExecutor.processAllChangeLogs(MigrationExecutor.java:83)
        at io.changock.runner.core.MigrationExecutor.lambda$executeMigration$0(MigrationExecutor.java:64)
        at com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.SpringDataMongo3Driver.executeInTransaction(SpringDataMongo3Driver.java:108)
        at io.changock.runner.core.MigrationExecutor.executeInTransactionIfStrategyOrUsualIfNot(MigrationExecutor.java:73)
        at io.changock.runner.core.MigrationExecutor.executeMigration(MigrationExecutor.java:64)
        at io.changock.runner.spring.v5.core.SpringMigrationExecutor.executeMigration(SpringMigrationExecutor.java:38)
        at io.changock.runner.core.ChangockBase.execute(ChangockBase.java:44)
        at io.changock.runner.spring.v5.ChangockSpringBuilderBase$ChangockSpringApplicationRunner.run(ChangockSpringBuilderBase.java:110)
        at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:786)
        at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:776)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
        at com.myproject.MyApplication.main(MyApplication.java:23)
Caused by: io.changock.migration.api.exception.ChangockException: Parameter of type [ObjectMapper] must be an interface
        at io.changock.runner.core.DependencyManagerWithContext.getDependency(DependencyManagerWithContext.java:42)
        at io.changock.runner.core.MigrationExecutor.getParameter(MigrationExecutor.java:165)
        at io.changock.runner.core.MigrationExecutor.executeChangeSetMethod(MigrationExecutor.java:155)
        at io.changock.runner.core.MigrationExecutor.executeAndLogChangeSet(MigrationExecutor.java:111)
        at io.changock.runner.spring.v5.core.SpringMigrationExecutor.executeAndLogChangeSet(SpringMigrationExecutor.java:44)
        at io.changock.runner.core.MigrationExecutor.processSingleChangeSet(MigrationExecutor.java:95)
        ... 19 common frames omitted

以下是我的build.gradle文件内容

    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

解决方法

我找到了问题。

问题是您没有使用LoggerHelper。

这是我的项目结构:

enter image description here

更新的LoggerHelper类:

enter image description here

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

enter image description here

控制台:

enter image description here

日志生成文件。

enter image description here

,
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'
        
    }

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...