Log is printed in console and log file is generated but it is empty. how to resolve this?

Viewed 39

this is my log4j2.properties file. i tried Many times. file is generated but output is empty

property.filename = logs
appenders = console, file
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=C:\\SpaceProject\\DataDrivernFrameWork\\src\\test\\resources\\logs\\appLog.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
log4j.appender.file.File=C:\\SpaceProject\\DataDrivernFrameWork\\src\\test\\resources\\logs\\appLog.log
loggers=file
logger.file.name=com.vcentry.lab.base
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
1 Answers

Here is the wrong in your configuration. You have instructed the root debug logs to use only the console appender and hence they only appear in console and not in the file.

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

Try with the following configuration which will instruct the logger to use both the console appender and the file appender for those root logs.

appender.console.name = STDOUT
appender.file.name = LOGFILE
rootLogger.level = debug
rootLogger.appenderRefs = stdout, fileAppender  <-----
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.fileAppender.ref = LOGFILE <-----
Related