问题描述
我正在从事Cucumber TestNg Gradle自动化项目。由于我是Gradle的新手,尽管我在build.gradle文件中放入了适当的log4j依赖项,却无法解决问题。有人可以调查这个问题并提供解决方案,或者就由于未将哪些日志写入名为“ ApplicationLogs.log”的日志文件而导致的问题向我提供建议
下面是我的项目结构
下面是我的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。
这是我的项目结构:
更新的LoggerHelper类:
测试LoggerHelper是否正常工作。我用main方法添加了一个Test类:
控制台:
日志生成文件。
,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'
}