You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Sc...@sybase.com on 2002/04/08 21:17:54 UTC

FileAppender throws FileNotFoundException when opening file for append? (More Info)

Since I got no responses from the last post I thought more info might be
warranted.

The following script is used to start the Java application that is trying
to use
log4j to log to the same file being created with the redirect in the
jagmgr.bat
script below:

---------------------- Jagmgr.bat file
-------------------------------------
@echo off

setlocal

call "%JAGUAR%\bin\setenv"

echo Starting Jaguar Manager...
echo Log file is %JAGUAR%\bin\jagmgr.log

set JAVA_HOME=%JAGUAR_JDK12%\jre
set PATH=%JAGUAR%\dll;%PATH%

set CLASSPATH=%JAGUAR%\java\classes\crimson.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\java\classes\xalan.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\java\classes\jaxp.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\easmgr\sctfix.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\easmgr\sybasecentral.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\easmgr\3pclasses.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\easmgr\jctable208.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\easmgr\jhall.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\java\lib\easclient.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\java\lib\easj2ee.jar
set CLASSPATH=%CLASSPATH%;%JAGUAR%\java\classes
set CLASSPATH=%CLASSPATH%;%JAGUAR%\html\classes
set CLASSPATH=%CLASSPATH%;%JAGUAR%\java\classes\easri.jar

REM ---- START OF ADDED BY VERTICAL PORTAL - TELCO GROUP --------------

REM
************************************************************************
REM * Add 3rd Party Jars in JAGUAR\java\lib to CLASSPATH and BOOTCLASSPATH
*
REM
************************************************************************
set THIRDPARTY_JARS=
for %%i in ("%JAGUAR%\java\lib\*.jar") do call "%JAGUAR%
\bin\Add3rdPartyJar.bat" "%%i"
for %%i in ("%JAGUAR%\java\lib\*.zip") do call "%JAGUAR%
\bin\Add3rdPartyJar.bat" "%%i"
if "%THIRDPARTY_JARS%" == "" GOTO setThirdPartyJarsDone
set CLASSPATH=%CLASSPATH%;%THIRDPARTY_JARS%
set BOOTCLASSPATH=%BOOTCLASSPATH%;%THIRDPARTY_JARS%

:setThirdPartyJarsDone
REM ** Add VP Plugin
set CLASSPATH=%CLASSPATH%;%JAGUAR%\easmgr\VPTelcoMgr.jar

REM ---- END OF ADDED BY VERTICAL PORTAL - TELCO GROUP --------------


cd /d %JAGUAR%\easmgr

rem "%JAVA_HOME%\bin\java" -ms4m -mx92m -classpath "%CLASSPATH%" -DJAGUAR
="%JAGUAR%" sybase.scf.controller.MainController > "%JAGUAR%
\bin\jagmgr.log" 2>&1

"%JAVA_HOME%\bin\java" -ms4m -mx92m -Xbootclasspath:"%CLASSPATH%;..
\java\classes\webservices.jar;..\java\classes\xerces.jar;..
\webservices\java\jsse.jar;..\webservices\java\jcert.jar;..
\webservices\java\jnet.jar;..\java\classes\uddi4j.jar;%JAVA_HOME%
\lib\rt.jar" -DJAGUAR="%JAGUAR%" sybase.scf.controller.MainController >
"%JAGUAR%\bin\jagmgr.log" 2>&1

rem "%JAVA_HOME%\bin\java" -ms4m -mx92m -Xbootclasspath:"%CLASSPATH%;..
\java\classes\webservices.jar;..\java\classes\xerces.jar;..
\webservices\java\jsse.jar;..\webservices\java\jcert.jar;..
\webservices\java\jnet.jar;..\java\classes\uddi4j.jar;%JAVA_HOME%
\lib\rt.jar" -DJAGUAR="%JAGUAR%" sybase.scf.controller.MainController >
"%JAGUAR%\bin\jagmgr.log"

endlocal
-----------------------------------------------------------

Is it simply impossible to have the FileAppender log to the same file
opened for stdout/stderr redirect output from an application? Since
I my code is on top of a framework that does not use Log4j I really need
to use this approach. Hope someone has a suggestion?

-----------------------------------------------------------
Using the following config file I am unable to have the SCPLOG_PRINTLN
appender open the file "../bin/jagmgr.log" since the file is open. Since
the
config specifies Append=true I would assume this would allow the openAppend
to succeed. Any help would be appreciated.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration debug="true" xmlns:log4j
='http://jakarta.apache.org/log4j/' disable="debug" disableOverride="true"
>

     <appender name="SCPASYNC" class="org.apache.log4j.AsyncAppender">
             <appender-ref ref="SCPLOG"/>
     </appender>

     <appender name="SCPASYNC_PRINTLN" class
="org.apache.log4j.AsyncAppender">
             <appender-ref ref="SCPLOG_PRINTLN"/>
     </appender>

     <appender name="STDOUT" class="org.apache.log4j.FileAppender">
           <param name="File" value="System.out" />
           <param name="Append" value="true" />
           <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern"
              value="%r [%t] %-5p %c{6} %x - %m%n"/>
           </layout>
     </appender>

     <appender name="SCPLOG" class="org.apache.log4j.FileAppender">
           <param name="File" value="../bin/jagmgr1.log" />
           <param name="Append" value="true" />
     </appender>

     <appender name="SCPLOG_PRINTLN" class="org.apache.log4j.FileAppender">
           <param name="File" value="../bin/jagmgr.log" />
           <param name="Append" value="true" />
           <layout class
="com.sybase.vp.admin.appserver.AppServerPatternLayout">
             <param name="ConversionPattern"
                value=" %m%n"/>
           </layout>
     </appender>

     <category name="printlog" additivity="false">
       <priority value="debug" />
        <appender-ref ref="SCPASYNC_PRINTLN" />
     </category>

     <category name="com.sybase.vp">
       <priority value="warn" />
     </category>

     <category name="com.sybase.vp.scp.sysman">
       <priority value="warn" />
     </category>

     <category name="com.sybase.vp.admin">
       <priority value="warn" />
     </category>

     <category name="com.sybase.vp.bod">
       <priority value="warn" />
     </category>

     <category name="com.sybase.vp.misc">
       <priority value="warn" />
     </category>

     <category name="com.sybase.vp.sm">
       <priority value="warn" />
     </category>

     <category name="com.sybase.vp.util">
       <priority value="warn" />
     </category>

     <root>
        <priority value ="warn" />
        <appender-ref ref="SCPASYNC" />
     </root>

</log4j:configuration>

-------Jagmgr.log file -------

LogInitializer: initialize() called
thread is Thread[main,5,main]
Stack is:
java.lang.Exception: Stack trace

     at java.lang.Thread.dumpStack(Thread.java:983)
     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:58)
     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:47)
     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:39)
     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:31)
     at
com.sybase.vp.scp.sysman.bo.TelcoProvider.Initialize(TelcoProvider.java:92)
     at sybase.scf.jviewer.ScjViewer.initProviders(ScjViewer.java, Compiled
Code)
     at sybase.scf.jviewer.ScjViewer.<init>(ScjViewer.java, Compiled Code)
     at sybase.scf.controller.MainController.run(MainController.java,
Compiled Code)
     at sybase.scf.controller.MainController.main(MainController.java)

LogInitializer: AppServerCategoryFactory created.
LogInitializer: AppServerCategory.setFactory called.
LogInitializer: setCategoryFactory called for defualt hierarchy.

A nonfatal internal JIT (3.10.107(x)) error 'Relocation error: NULL
relocation target' has occurred in :
  'org/apache/crimson/parser/Parser2.maybeComment (Z)Z': Interpreting
method.
  Please report this error in detail to
http://java.sun.com/cgi-bin/bugreport.cgi

log4j: Disable override="true".
log4j: Handling non-null disable override directive: "true".
log4j: Overriding all disable methods.
log4j: Disable ="debug".
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [printlog] additivity to [false].
log4j: Priority value for printlog is  [debug].
log4j: printlog priority set to DEBUG
log4j: Class name: [org.apache.log4j.AsyncAppender]
log4j: Attaching appender named [SCPLOG_PRINTLN] to appender named
[SCPASYNC_PRINTLN].
log4j: Class name: [org.apache.log4j.FileAppender]
log4j: Setting property [file] to [../bin/jagmgr.log].
log4j: Setting property [append] to [true].
log4j: Parsing layout of class:
"com.sybase.vp.admin.appserver.AppServerPatternLayout"
log4j: Setting property [conversionPattern] to [ %m%n].
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: ../bin/jagmgr.log (The process cannot access
the file because
it is being used by another process)

     at java.io.FileOutputStream.openAppend(Native Method)

     at java.io.FileOutputStream.<init>(FileOutputStream.java:100)

     at java.io.FileWriter.<init>(FileWriter.java:39)

     at org.apache.log4j.FileAppender.setFile(FileAppender.java:284)

     at
org.apache.log4j.FileAppender.activateOptions(FileAppender.java:239)

     at
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)

     at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java,
Compiled Code)

     at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java,

Compiled Code)

     at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java,
Compiled Code)

     at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java,

Compiled Code)

     at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfCategoryElement(DOMConfigurator.java,

Compiled Code)

     at
org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:317)

     at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java,
Compiled Code)

     at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:593)

     at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:527)

     at
org.apache.log4j.xml.XMLWatchdog.doOnChange(DOMConfigurator.java:725)

     at
org.apache.log4j.helpers.FileWatchdog.checkAndConfigure(FileWatchdog.java:80)

     at org.apache.log4j.helpers.FileWatchdog.<init>(FileWatchdog.java:49)

     at org.apache.log4j.xml.XMLWatchdog.<init>(DOMConfigurator.java:717)

     at
org.apache.log4j.xml.DOMConfigurator.configureAndWatch(DOMConfigurator.java:517)

     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:102)

     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:47)

     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:39)

     at
com.sybase.vp.admin.Log4jInitializer.initialize(Log4jInitializer.java:31)

     at
com.sybase.vp.scp.sysman.bo.TelcoProvider.Initialize(TelcoProvider.java:92)

     at sybase.scf.jviewer.ScjViewer.initProviders(ScjViewer.java, Compiled
Code)

     at sybase.scf.jviewer.ScjViewer.<init>(ScjViewer.java, Compiled Code)

     at sybase.scf.controller.MainController.run(MainController.java,
Compiled Code)

     at sybase.scf.controller.MainController.main(MainController.java)

log4j: Adding appender named [SCPASYNC_PRINTLN] to category [printlog].
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [com.sybase.vp] additivity to [true].
log4j: Priority value for com.sybase.vp is  [warn].
log4j: com.sybase.vp priority set to WARN
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [com.sybase.vp.scp.sysman] additivity to [true].
log4j: Priority value for com.sybase.vp.scp.sysman is  [warn].
log4j: com.sybase.vp.scp.sysman priority set to WARN
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [com.sybase.vp.admin] additivity to [true].
log4j: Priority value for com.sybase.vp.admin is  [warn].
log4j: com.sybase.vp.admin priority set to WARN
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [com.sybase.vp.bod] additivity to [true].
log4j: Priority value for com.sybase.vp.bod is  [warn].
log4j: com.sybase.vp.bod priority set to WARN
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [com.sybase.vp.misc] additivity to [true].
log4j: Priority value for com.sybase.vp.misc is  [warn].
log4j: com.sybase.vp.misc priority set to WARN
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [com.sybase.vp.sm] additivity to [true].
log4j: Priority value for com.sybase.vp.sm is  [warn].
log4j: com.sybase.vp.sm priority set to WARN
log4j: Retreiving an instance of org.apache.log4j.Category.
log4j: Setting [com.sybase.vp.util] additivity to [true].
log4j: Priority value for com.sybase.vp.util is  [warn].
log4j: com.sybase.vp.util priority set to WARN
log4j: Priority value for root is  [warn].
log4j: root priority set to WARN
log4j: Class name: [org.apache.log4j.AsyncAppender]
log4j: Attaching appender named [SCPLOG] to appender named [SCPASYNC].
log4j: Class name: [org.apache.log4j.FileAppender]
log4j: Setting property [file] to [../bin/jagmgr1.log].
log4j: Setting property [append] to [true].
log4j: Adding appender named [SCPASYNC] to category [root].
Log4j: initialize called
The Base is com.sybase.vp.scp.sysman
The lang: en
The Resource base is lang
The class is dlg.LogOnDialogLayout
The class with name dlg.LogOnDialogLayout has been loaded.
Set GOJPage
addLoginUser called.
com.sybase.ejb.InitialContextFactoryiiop://spkay:9000tp**adodger
Created BOD instance successfully
Called BOD with loginTask
UserTask doc passed to SysMan:
<?xml version="1.0" encoding="UTF-8"?>
<VP>
.......
Result resturned from UserTask call to SysMan:
<?xml version="1.0" encoding="UTF-8"?>
<VP>
.........
Open Child Successful





--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>