Java log4j调试日志记录到catalina.out,但不在unix中的文件中

Java log4j调试日志记录到catalina.out,但不在unix中的文件中,java,log4j,Java,Log4j,我在JSF应用程序中实现了log4j日志记录 log4j.rootLogger=DEBUG, stdout, fileout #----------------------------- All logging to console----------------------------- log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.P

我在JSF应用程序中实现了log4j日志记录

log4j.rootLogger=DEBUG, stdout, fileout

#----------------------------- All logging to console-----------------------------

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] [%t] %5p %c{1}:%L - %m%n

# ------------------------------ All Logging to File------------------------------

log4j.appender.fileout = org.apache.log4j.RollingFileAppender
log4j.appender.fileout.layout = org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern = [%d] [%t] %5p %c{1}:%L - %m%n
log4j.appender.fileout.File = ${catalina.home}/logs/Portal-alllogs.log
log4j.appender.fileout.MaxFileSize =2MB
log4j.appender.fileout.MaxBackupIndex =2
现在我在应用程序中遇到以下异常,因为数据库关闭了

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01034: ORACLE not available
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
        at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361)
        at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:485)
        at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
        at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
WARNING: Failed to register in JMX: javax.naming.NamingException: Cannot create PoolableConnectionFactory (ORA-01034: ORACLE not available

这可能是权限问题-请检查${catalina.home}/logs目录的所有者和权限。

是否在代码中捕获并处理该异常,即日志?如果不是,为什么希望显示在日志中?

如果不是权限问题:验证${catalina.home}是否解析到您认为的位置--尝试使用“原始”绝对路径排除此问题

您确定异常实际上已记录到标准输出,而不是仅打印到标准输出吗?你能在你的控制台上找到转换模式吗

感谢您的回复。所有文件夹权限都在日志目录中的-rw-r---。所有剩余的日志都显示在文件和catalina.out中。但是我的日志中没有显示我的异常file@bpgergo-我在我的应用程序中使用tomcat连接池,并在我的应用程序的context.xml中声明了它,此异常正在抛出。我正在捕获此异常,但在日志中我没有看到java文件抛出的位置。@PapaFreud感谢您的响应。${catalina.home}正在正确解析,因为我可以在${catalina.home}中看到我的日志文件/仅日志目录我已更新我的问题。在上载WAR本身时,我遇到上述异常。我仍然没有看到它使用的是“log4j.appender.stdout.layout.ConversionPattern=[%d][%t]%5p%c{1}:%L-%m%n”。如果我是你,我会先确保webapp的部署和启动正确,然后再担心以后的日志记录。这是因为在上传WAR的过程中我遇到了异常,我在日志文件中看不到它吗?我猜是的。如何“上传战争”?我搞错了。我实际上是在做
e.printStackTrace
而不是
LOGGER.debug(“异常”,e)
。我已经更改了。现在我在日志文件中看到了我的日志。谢谢你的帮助。
WARNING: Unexpected exception resolving reference

    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    )
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getLogWriter(BasicDataSource.java:1098)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:350)
            at org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.getObjectInstance(BasicDataSourceFactory.java:156)
            at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
            at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
            at org.apache.naming.NamingContext.lookup(NamingContext.java:826)
            at org.apache.naming.NamingContext.lookup(NamingContext.java:145)
            at org.apache.naming.NamingContext.lookup(NamingContext.java:814)
            at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
            at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1021)
     at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
            at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1021)
            at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:631)
            at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:237)
            at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
            at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:932)
            at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723)
     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:932)
            at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723)
            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
            at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)
            at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
            at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
            at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
            at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:379)
            at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:324)
            at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041)
            at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
            at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
            at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
            at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
            at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
            at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
            at org.apache.catalina.startup.Catalina.start(Catalina.java:620)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303)
            at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)