2011-11-07 104 views
0

我實現log4j的日誌記錄在我的JSF application.My log4j.properties文件是這樣的的log4j DEBUG日誌記錄到catalina.out中而不是在文件中UNIX

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 

現在我得到我的應用程序下面的異常因爲DB下跌

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.out的顯示出來,而不是在我的日誌文件

可以在任何請解釋爲什麼? 在此先感謝

更新:我剛纔看到這篇日誌,同時部署WAR文件

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) 

回答

0

你確定這個異常實際上是LOGGED到標準輸出,而不僅僅是打印到標準輸出?你能發現轉換模式在你的控制檯上的工作嗎?

+0

我更新了我的問題。當上傳我的WAR本身我得到了上述例外。 – Sreeram

+0

我仍然沒有看到它使用「log4j.appender.stdout.layout.ConversionPattern = [%d] [%t]%5p%c {1}:%L - %m%n」。如果我是你,我會盡量確保webapp先部署並正確啓動,並擔心後面的日誌記錄。 – PapaFreud

+0

是否因爲在上傳WAR期間我收到異常,我無法在日誌文件中看到它? – Sreeram

0

這可能是一個權限問題 - 檢查$ {}的catalina.home的所有者和權限/日誌目錄。

+0

感謝您的回覆。所有的文件夾權限都是-rw-r ----在日誌目錄中。所有剩餘的日誌都顯示在文件和catalina.out.but中但我的異常不會顯示在我的日誌中文件 – Sreeram

0

你是否在你的代碼中捕獲了這個異常並處理它,那是日誌?如果不是,你爲什麼期望在你的日誌中出現?

+0

@ bpgergo - 我在我的應用程序中使用tomcat連接池,我在我的應用程序的context.xml中聲明它。但是現在因爲我的數據庫關閉了,這個異常正在拋出。我正在捕獲這個異常,但是在日誌我沒有看到我的Java文件從哪裏扔掉。 – Sreeram

0

如果它不是權限問題:請驗證$ {catalina.home}是否解析到您認爲它的位置 - 嘗試使用「原始」絕對路徑來排除此問題。

+0

@ PapaFreud - 謝謝你的回覆。$ {catalina.home}解析正確,因爲我只能在$ {catalina.home}/logs目錄中看到我的日誌文件 – Sreeram

相關問題