8000 Could not create directory /logs · Issue #53 · harvard-lts/FITSservlet · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Could not create directory /logs #53
Open
@forresthopkinsa

Description

@forresthopkinsa

For a basic initial installation with Tomcat 9 on Debian Bullseye, I'm seeing logging failures right off the bat:

Attempting to set up log4j logging...
No system property for [log4j2.configurationFile] -- using default log4j2.xml within WAR file
Look for log4j2.xml properties file in WAR here: file:/opt/tomcat/webapps/fits/WEB-INF/classes/log4j2.xml
2024-08-24 02:27:56,669 main ERROR FileManager (../logs/fits-service.log) java.io.IOException: Could not create directory /logs java.io.IOException: Could not create directory /logs
	at org.apache.logging.log4j.core.util.FileUtils.mkdir(FileUtils.java:128)
	at org.apache.logging.log4j.core.util.FileUtils.makeParentDirs(FileUtils.java:141)
	at org.apache.logging.log4j.core.appender.FileManager$FileManagerFactory.createManager(FileManager.java:436)
	at org.apache.logging.log4j.core.appender.FileManager$FileManagerFactory.createManager(FileManager.java:423)
	at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:144)
	at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
	at org.apache.logging.log4j.core.appender.FileManager.getFileManager(FileManager.java:183)
	at org.apache.logging.log4j.core.appender.FileAppender$Builder.build(FileAppender.java:99)
	at org.apache.logging.log4j.core.appender.FileAppender$Builder.build(FileAppender.java:52)
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:124)
	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.createConfiguration(AbstractConfiguration.java:1055)
	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.reconfigure(LoggerContext.java:694)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:599)
	at edu.harvard.hul.ois.fits.service.servlets.FitsServlet.<clinit>(FitsServlet.java:78)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:898)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:838)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4182)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4482)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:603)
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1014)
	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1866)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
	at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:816)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1584)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:385)
	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:332)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:878)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:735)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)

2024-08-24 02:27:56,673 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.FileAppender for element File: java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.FileManager$FileManagerFactory@6d1e005c] unable to create manager for [../logs/fits-service.log] with data [org.apache.logging.log4j.core.appender.FileManager$FactoryData@23680e97] java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.FileManager$FileManagerFactory@6d1e005c] unable to create manager for [../logs/fits-service.log] with data [org.apache.logging.log4j.core.appender.FileManager$FactoryData@23680e97]
	at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:146)
	at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:100)
	at org.apache.logging.log4j.core.appender.FileManager.getFileManager(FileManager.java:183)
	at org.apache.logging.log4j.core.appender.FileAppender$Builder.build(FileAppender.java:99)
	at org.apache.logging.log4j.core.appender.FileAppender$Builder.build(FileAppender.java:52)
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:124)
	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.createConfiguration(AbstractConfiguration.java:1055)
	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.reconfigure(LoggerContext.java:694)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:599)
	at edu.harvard.hul.ois.fits.service.servlets.FitsServlet.<clinit>(FitsServlet.java:78)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:898)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:838)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4182)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4482)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:603)
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1014)
	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1866)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
	at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:816)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1584)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:385)
	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:332)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:878)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:735)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)

2024-08-24 02:27:56,675 main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.FileAppender for element File: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.FileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.FileAppender
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:260)
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:136)
	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.createConfiguration(AbstractConfiguration.java:1055)
	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.reconfigure(LoggerContext.java:694)
	at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
	at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
	at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
	at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:599)
	at edu.harvard.hul.ois.fits.service.servlets.FitsServlet.<clinit>(FitsServlet.java:78)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:898)
	at org.apache.catalina.core.StandardWrapp
6916
er.load(StandardWrapper.java:838)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4182)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4482)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:603)
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1014)
	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1866)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
	at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:816)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1584)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:385)
	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:332)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:878)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:735)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)

2024-08-24 02:27:56,676 main ERROR Null object returned for File in Appenders.
2024-08-24 02:27:56,683 main ERROR Unable to locate appender "FILEOUT" for logger config "root"

This is the relevant part of my catalina.properties:

fits.home=/opt/fits
shared.loader=/opt/fits/lib/*.jar

And here are the directory structures and permissions:

/opt$ ls -l
drwxr-xr-x  8 tomcat     tomcat     4096 Aug 24 02:21 fits
drwxr-xr-x  9 tomcat     tomcat     4096 Aug 24 02:25 tomcat
/opt/tomcat/logs$ ls -al
total 476
drwxr-x--- 2 tomcat tomcat   4096 Aug 24 00:07 .
drwxr-xr-x 9 tomcat tomcat   4096 Aug 24 02:25 ..
-rw-r----- 1 tomcat tomcat  50608 Aug 23 23:57 catalina.2024-08-23.log
-rw-r----- 1 tomcat tomcat 101276 Aug 24 02:28 catalina.2024-08-24.log
-rw-r----- 1 tomcat tomcat 257031 Aug 24 02:28 catalina.out
-rw-r----- 1 tomcat tomcat      0 Aug 24 00:00 host-manager.2024-08-24.log
-rw-r----- 1 tomcat tomcat  21319 Aug 24 02:28 localhost.2024-08-24.log
-rw-r----- 1 tomcat tomcat    456 Aug 24 01:03 localhost_access_log.2024-08-24.txt
-rw-r----- 1 tomcat tomcat      0 Aug 24 00:00 manager.2024-08-24.log

Any ideas? It sounds like it's trying to put the file in /opt/tomcat/logs, which is exactly what I want. Could it be trying to create that directory and failing the whole operation because it already exists?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0