blob: 1438c27bd42de376be480b97a8249d23983d9315 [file] [log] [blame]
#include <stdlib.h>
#include <log4cxx/logger.h>
#include <log4cxx/fileappender.h>
#include <log4cxx/simplelayout.h>
#include <log4cxx/helpers/exception.h>
using namespace log4cxx;
using namespace log4cxx::helpers;
int main()
{
int ret = EXIT_SUCCESS;
try
{
LayoutPtr layout = new SimpleLayout();
FileAppender *fileAppender =
new FileAppender(layout, _T("result"), false);
LoggerPtr rootLogger = Logger::getRootLogger();
rootLogger->addAppender(fileAppender);
rootLogger->debug(_T("debug message"));
rootLogger->info(_T("info message"));
rootLogger->warn(_T("warn message"));
rootLogger->error(_T("error message"));
rootLogger->fatal(_T("fatal message"));
fileAppender->close();
#ifdef UNICODE
std::wofstream witness;
#else
std::ofstream witness;
#endif
witness.open("witness", std::ios::out|std::ios::trunc);
witness << _T("DEBUG - debug message") << std::endl;
witness << _T("INFO - info message") << std::endl;
witness << _T("WARN - warn message") << std::endl;
witness << _T("ERROR - error message") << std::endl;
witness << _T("FATAL - fatal message") << std::endl;
witness.close();
#ifdef UNICODE
std::wifstream inr, inw;
#else
std::ifstream inr, inw;
#endif
inr.open("result", std::ios::in|std::ios::binary);
inw.open("witness", std::ios::in|std::ios::binary);
if (inr.fail() || inw.fail())
{
ret = EXIT_FAILURE;
}
else
{
inr.seekg(0, std::ios_base::end);
int sizer = inr.tellg();
inr.seekg(0, std::ios_base::beg);
inw.seekg(0, std::ios_base::end);
int sizew = inw.tellg();
inw.seekg(0, std::ios_base::beg);
if (sizer != sizew)
{
ret = EXIT_FAILURE;
}
else
{
TCHAR * result = new TCHAR[sizer + 1];
TCHAR * witness = new TCHAR[sizew + 1];
memset(result, sizer * sizeof(TCHAR), 0);
memset(witness, sizew * sizeof(TCHAR), 0);
inr.read(result, sizer);
inw.read(witness, sizew);
result[sizer] = _T('\0');
witness[sizew] = _T('\0');
if (memcmp(result, witness, sizer * sizeof(TCHAR)) != 0)
{
ret = EXIT_FAILURE;
}
delete [] result;
delete [] witness;
inr.close();
inw.close();
}
}
}
catch(Exception&)
{
ret = EXIT_FAILURE;
}
return ret;
}