00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00031 #define LOG4SENDPP_NEED_EXPORTS
00032 #include <log4sendpp/log4sendpp.h>
00033
00034 #ifdef LOG4SENDPP_USE_QT
00035
00036 #include <log4sendpp/arguments.h>
00037 #include <log4sendpp/locationinfo.h>
00038 #include <log4sendpp/qt_listener.h>
00039
00040
00041 LOG4SENDPP_NS_START
00042
00043
00044 LOG4SENDPP_API_IMPL0 QtListener::QtListener()
00045 {
00046 oldMessageHandler = qInstallMsgHandler( &QtListener::messageHandler );
00047 }
00048
00049
00050 LOG4SENDPP_API_IMPL0 QtListener::~QtListener()
00051 {
00052 qInstallMsgHandler( oldMessageHandler );
00053 }
00054
00055
00056 LOG4SENDPP_API_IMPL(void) QtListener::messageHandler(QtMsgType type, const char *msg)
00057 {
00058 LOG4SENDPP_NS::LocationInformation loc("",
00059 0,
00060 "",
00061 LOG4SENDPP_NS::ThreadDictionary::getCurrentNickname(),
00062 "");
00063 Logger::Level level = Logger::Error;
00064 switch (type)
00065 {
00066 case QtDebugMsg:
00067 level = Logger::Debug;
00068 break;
00069
00070 case QtWarningMsg:
00071 level = Logger::Warning;
00072 break;
00073
00074 case QtFatalMsg:
00075 level = Logger::Fatal;
00076 break;
00077
00078 default:
00079 level = Logger::Error;
00080 }
00081
00082 LOG4SENDPP_NS::Logger::logger().log(level, msg, "Qt", &loc);
00083 }
00084
00085
00086 LOG4SENDPP_NS_END
00087
00088
00089 #endif // LOG4SENDPP_USE_QT
00090