2

I have a java webservices project code which is using log4j properties as below. It prints to tomcat log file when we invoke certain webservice.

I created below log4j2.properties file after referring to existing documentation across sites. However it doesn't seem to be working. It is not at all printing to tomcat log file like it used to earlier with log4j when I invoke certain webservice. My project does not use Maven/Spring framework.

Log4j.properties

# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=INFO, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE

# Set the enterprise logger priority to FATAL
log4j.logger.org.apache.axis2.enterprise=FATAL
log4j.logger.de.hunsicker.jalopy.io=FATAL
log4j.logger.httpclient.wire.header=FATAL
log4j.logger.org.apache.commons.httpclient=FATAL

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%p: %d{MMM dd, yyyy h:mm:ss a} %C %M [%t]%n%m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis2.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

Log4j2.properties

#log4j.rootCategory=INFO, CONSOLE, LOGFILE
appenders=CONSOLE
rootlogger.level = INFO
status = ERROR

# Set the enterprise logger priority to FATAL
#log4j.logger.org.apache.axis2.enterprise=FATAL
#log4j.logger.de.hunsicker.jalopy.io=FATAL
#log4j.logger.httpclient.wire.header=FATAL
#log4j.logger.org.apache.commons.httpclient=FATAL

logger.enterprise.name = org.apache.axis2.enterprise
logger.enterprise.level = FATAL

logger.io.name = de.hunsicker.jalopy.io
logger.io.level = FATAL

logger.header.name = httpclient.wire.header
logger.header.level = FATAL

logger.httpclient.name = org.apache.commons.httpclient
logger.httpclient.level = FATAL

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
##log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
##log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
##log4j.appender.CONSOLE.layout.ConversionPattern=%p: %d{MMM dd, yyyy h:mm:ss a} %C %M [%t]%n%m%n
appender.CONSOLE.type = Console
appender.CONSOLE.name = STDOUT
appender.CONSOLE.layout.type = PatternLayout
appender.CONSOLE.layout.pattern = %p: %d{MMM dd, yyyy h:mm:ss a} %C %M [%t]%n%m%n

# LOGFILE is set to be a File appender using a PatternLayout.
##log4j.appender.LOGFILE=org.apache.log4j.FileAppender
##log4j.appender.LOGFILE.File=axis2.log
##log4j.appender.LOGFILE.Append=true
##log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
##log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

# Log4j2 version for LOGFILE - Not sure if i should define this. Log4j.rootcategory in LOG4J Properties file does seem to define this.
#appender.LOGFILE.type = File
#appender.logfile.file = axis2.log
#appender.logfile.layout.type = PatternLayout
#appender.logfile.layout.pattern = %d [%t] %-5p %c %x - %m%n

rootLogger.appenderRef.stdout.ref = STDOUT

I am new to java. Can someone please help validate if log4j2 properties file needs corrections/updates?

Jazz
  • 21
  • 2
  • Your file seems alright. You can change the status logger level to `status = DEBUG` to see on the standard output if Log4j 2.x actually reads this file. Otherwise set `-Dlog4j.debug=true` to see which file it uses. BTW: the properties format is IMHO the worst of the available Log4j 2.x formats. – Piotr P. Karwasz Mar 15 '22 at 21:54
  • Its cleaner to use log4j2.xml format. Try to convert to xml if possible. – Minh Kieu Mar 16 '22 at 13:58

0 Answers0