00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef LOG4SENDPP_XMLFORMATTER_H
00031 #define LOG4SENDPP_XMLFORMATTER_H
00032
00033 #include <log4sendpp/log4sendpp.h>
00034
00035 #include <log4sendpp/formatter.h>
00036
00037
00038 LOG4SENDPP_NS_START
00039
00040
00043 class LOG4SENDPP_API_DECL0 XmlFormatter : public Formatter
00044 {
00045 public:
00046
00051 XmlFormatter(const LOG4SENDPP_STD_NS::string &appname);
00052
00057 XmlFormatter(const LOG4SENDPP_STD_NS::string &appname, const LOG4SENDPP_STD_NS::string &hostname);
00058
00068 virtual LOG4SENDPP_STD_NS::vector<LOG4SENDPP_STD_NS::string> format (Logger::Level level,
00069 const LOG4SENDPP_STD_NS::string &msg,
00070 LOG4SENDPP_STD_NS::string category,
00071 LOG4SENDPP_INT64 stamp,
00072 const LocationInformation *loginfo,
00073 const Logger::DiagnosticInformation *diaginfo);
00074
00079 static LOG4SENDPP_STD_NS::string xmlEscape(const LOG4SENDPP_STD_NS::string &msg);
00080
00081 private:
00082
00083 bool first;
00084 unsigned long seqnum;
00085 LOG4SENDPP_STD_NS::string appname;
00086 LOG4SENDPP_STD_NS::string hostname;
00087 };
00088
00089
00090 LOG4SENDPP_NS_END
00091
00092
00093 #endif // LOG4SENDPP_XMLFORMATTER_H