On Jan 4, 2005, at 6:29 PM, Justin Chen wrote:

Hello,

I got a similar problem as the one from Bob Young. The difference is that when I use logging in a standalone EXE, it works just fine; the problem occurs when I use it in a DLL called by an EXE. When the EXE terminates, an error message appears stating that certain memory could not be "read". Surprisingly all log entries have been written succesfully despite of the error.

When I compile it with vc7.0, everything is working ok.

Any ideas? Thanks!
-Justin


The current CVS is significantly different than 0.9.7 and there is a decent chance that whatever was causing this error has at least moved. 0.9.7 had significant number of non-local static variables that caused problems on startup in DLL's (see http://issues.apache.org/jira/browse/LOGCXX-4) since their construction order was unspecified. The use of non-local statics could also cause problems on shutdown when the destructors are called in a unspecified order. All non-local statics (with the exception of Level::DEBUG, etc which remain for backward compatibility and should be safe since they aren't used within log4cxx) should have been eliminated from the CVS.


I know that there is at least a problem with NDC::pop in the current CVS and I'll try to analyze it in fairly short order. If anyone wants to see if the same problem occurs in the CVS version, I would appreciate reports. However, I won't spend any time on it if it only occurs in 0.9.7.



Reply via email to