SailPoint log file not loading after tomcat service restart

I have a client that is seeing a issue whenever they are restarting tomcat services on any of the IIQ servers. The SailPoint log file does not get loaded, and logs are not appended to the sailpoint.log file. There are no error messages during this issue; it is simply that the logs are not being appended.

To resolve the issue, they manually reload the logging configuration from the debug pages on all IIQ servers every time there is a server restart.

Please note that nothing has been changed in the Tomcat configuration

  • What have I tried?
    I have had them add this “” to the context.xml file located under tomcat. But this produced the error below.
ERROR StatusConsoleListener Unable to locate plugin type for spsyslog
ERROR StatusConsoleListener Unable to locate plugin for spsyslog
ERROR StatusConsoleListener Unable to invoke factory method in class org.apache.logging.log4j.core.config.AppendersPlugin for element Appenders: java.lang.NullPointerException
java.lang.NullPointerException
       at org.apache.logging.log4j.core.config.plugins.visitors.PluginElementVisitor.visit(PluginElementVisitor.java:52)
       at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.generateParameters(PluginBuilder.java:286)
       at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:137)
       at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1138)
       at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1063)
       at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:664)
       at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:258)
       at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:304)
       at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621)
       at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:285)
       at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:262)
       at org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:169)
       at org.apache.logging.log4j.web.Log4jWebInitializerImpl.initializeNonJndi(Log4jWebInitializerImpl.java:172)
       at org.apache.logging.log4j.web.Log4jWebInitializerImpl.start(Log4jWebInitializerImpl.java:108)
       at org.apache.logging.log4j.web.Log4jServletContainerInitializer.onStartup(Log4jServletContainerInitializer.java:57)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4904)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
       at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
       at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:661)
       at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1025)
       at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1919)
       at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
       at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
       at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
       at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
       at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:826)
       at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476)
       at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1619)
       at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318)
       at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
       at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
       at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:794)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
       at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
       at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
       at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
       at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:248)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
       at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
       at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
ERROR StatusConsoleListener Unable to locate appender "idmartrollingfile" for logger config "root"
ERROR StatusConsoleListener Unable to locate appender "stdout" for logger config "root"
ERROR StatusConsoleListener Unable to locate appender "stdout" for logger config "sailpoint.api.logging.SyslogAppender"
ERROR StatusConsoleListener Unable to locate appender "spsyslog" for logger config "sailpoint"
ERROR StatusConsoleListener Unable to locate appender "stdout" for logger config "sailpoint.object.SyslogEvent"

seems like appender in log4j file is not configured properly.

@GreeneT if possible then post the log4j2.properties here.

may be you already know but here are some links

Configure Rollingfile loggers in log4j2.properties - Compass

Solved: IdentityIQ 8.3 Log4j2 FileAppender not working - Compass

I will take a look at the links provided.

Thanks!

1 Like

Make sure you have no leading / trailing whitespaces in the log4j2.properties line where you specify spsyslog.

@pravin_ranjan After reviewing the link provided and after adding the recommended configurations to add the /identityiq/WEB-INF/classes folder as a PreResource, I see below errors.

ERROR StatusConsoleListener Unable to locate appender "idmartrollingfile" for logger config "root"
ERROR StatusConsoleListener Unable to locate appender "stdout" for logger config "root"
ERROR StatusConsoleListener Unable to locate appender "stdout" for logger config "sailpoint.api.logging.SyslogAppender"
ERROR StatusConsoleListener Unable to locate appender "spsyslog" for logger config "sailpoint"
ERROR StatusConsoleListener Unable to locate appender "stdout" for logger config "sailpoint.object.SyslogEvent"

share your log4j2 file.

@vishal_kejriwal1 Attached is the log4j2
log4j2.properties (19.5 KB)
file