logging-log4cxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevin Tew <list...@ekstrom.org>
Subject RollingFileAppender EnterCriticalSection Crash Exception on Windows Server 2003
Date Thu, 06 Jan 2005 18:32:11 GMT
I've wrote a example app below that illustrates the problem.
Any suggestions?
Kevin ( listman)

This is the exception
Unhandled exception at 0x77f5d61b in testing.exe: 0xC0000005: Access 
violation writing location 0x100ad678.

This is the stack
     ntdll.dll!77f5d61b()     
     ntdll.dll!77f42044()     
 >    log4cxx.dll!log4cxx::helpers::CriticalSection::lock()  Line 49 + 
0xc    C++
     log4cxx.dll!log4cxx::helpers::ObjectImpl::lock()  Line 103    C++
     log4cxx.dll!log4cxx::helpers::synchronized::synchronized(const 
log4cxx::helpers::Object * object=0x00b22d70)  Line 103 + 0x24    C++
     log4cxx.dll!log4cxx::FileAppender::setFile(const 
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &

fileName={...}, bool append=true, bool bufferedIO=false, int 
bufferSize=8192)  Line 71 + 0x37    C++
     log4cxx.dll!log4cxx::FileAppender::FileAppender(const 
log4cxx::helpers::ObjectPtrT<log4cxx::Layout> & layout={...}, const 
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &

fileName={...})  Line 54    C++
     log4cxx.dll!log4cxx::RollingFileAppender::RollingFileAppender(const 
log4cxx::helpers::ObjectPtrT<log4cxx::Layout> & layout={...}, const 
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &

fileName={...})  Line 42 + 0xfe    C++
     testing.exe!main(int argc=1, char * * argv=0x00b213c8)  Line 54 + 
0x141    C++
     testing.exe!mainCRTStartup()  Line 259 + 0x19    C
     kernel32.dll!77e4f38c()     

This is the example code I'm trying to get to work,
Console and NTEventViewer  Appenders work great.

// testing.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <log4cxx/logger.h>
#include <log4cxx/consoleappender.h>
#include <log4cxx/patternlayout.h>
#ifdef WIN32
#include <log4cxx/nt/nteventlogappender.h>
#endif
#include <log4cxx/rollingfileappender.h>

int hello( int x )
{
  return x*x;
}
int _tmain(int argc, _TCHAR* argv[])
{
  int h = 0;
  int i = 0;
  int j = 0;
  int k = 0;
  int l = 0;
  for ( int x = 0; x < 10; x ++ )
  {
    h++;
    i++;
    j = hello( h );
  }

  log4cxx::LoggerPtr fCBLogger = NULL;
  static const char *logName = "CBLog";
  fCBLogger = log4cxx::Logger::getLogger( logName );
  if ( fCBLogger )
  {
    fCBLogger->setLevel( log4cxx::Level::DEBUG );
    static const char *layoutPattern = "%c %p %d{%Y-%b-%d %H:%M:%S} %m";

    fCBLogger->addAppender( new log4cxx::ConsoleAppender( new 
log4cxx::PatternLayout( layoutPattern ), "system.out" ) );

    if ( false )
    {
      fCBLogger->addAppender( new log4cxx::ConsoleAppender( new 
log4cxx::PatternLayout( layoutPattern ), "system.err" ) );
    }

#ifdef WIN32
    typedef 
log4cxx::helpers::ObjectPtrT<log4cxx::nt::NTEventLogAppender> 
NTEventLogAppenderPtr;
    NTEventLogAppenderPtr ntEventLogAppender = new 
log4cxx::nt::NTEventLogAppender( "localhost", "Application", 
"cbIntegrate", new log4cxx::PatternLayout( layoutPattern ) );
    ntEventLogAppender->setThreshold( log4cxx::Level::WARN );
    fCBLogger->addAppender( ntEventLogAppender );
#endif

    typedef log4cxx::helpers::ObjectPtrT<log4cxx::RollingFileAppender> 
RollingFileAppenderPtr;
    RollingFileAppenderPtr rollingFileAppender = new 
log4cxx::RollingFileAppender( new log4cxx::PatternLayout( layoutPattern 
), "cbLog.log" );
    rollingFileAppender->setMaxBackupIndex( 10 );
    rollingFileAppender->setMaxFileSize( "10MB" );
    fCBLogger->addAppender( rollingFileAppender );
  }
  else
  {
    int k=1;
  }
  return 0;
}



Mime
View raw message