#pragma once #include #include #include "log4cxx\logger.h" #include "log4cxx\propertyconfigurator.h" using namespace std; #ifdef DRIVERAPI_EXPORTS #define DRIVERAPI_API __declspec(dllexport) #else #define DRIVERAPI_API __declspec(dllimport) #endif class CxxLogger { public: CxxLogger(void); virtual ~CxxLogger(void); }; DRIVERAPI_API bool __LockBuffer(); DRIVERAPI_API void __UnLockBuffer(); DRIVERAPI_API const wchar_t* __FuncPrintSimpleW(char* function,const wchar_t *format,...) ; DRIVERAPI_API const wchar_t* __FuncPrintSimpleA(char* function,const char *format,...) ; DRIVERAPI_API log4cxx::LoggerPtr InitCxxLogger(const wchar_t *pConfigFile,const wchar_t *pConfigOption); #ifdef _UNICODE #else #endif #define PRINTA_INFO(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_INFO( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleA(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTA_WARN(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_WARN( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleA(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTA_DEBUG(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_DEBUG( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleA(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTA_ERROR(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleA(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTA_FATAL(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_FATAL( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleA(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTW_INFO(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_INFO( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleW(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTW_WARN(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_WARN( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleW(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTW_DEBUG(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_DEBUG( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleW(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTW_ERROR(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleW(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ } #define PRINTW_FATAL(pLogger,format,...) {\ if(__LockBuffer()) { LOG4CXX_FATAL( ((log4cxx::LoggerPtr)pLogger), __FuncPrintSimpleW(__FUNCTION__,format,__VA_ARGS__) ); __UnLockBuffer();}else{LOG4CXX_ERROR( ((log4cxx::LoggerPtr)pLogger), L"log Mutex crashed" );}\ }