X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2FXMLToolingConfig.cpp;h=f15454070d537613b692650a10baf0dd1c3c9e41;hb=7048552d3d631ad4c911af98e050caa9ae1866d4;hp=9773dcd0d5a3e351032b84290dfbb6969edcd60a;hpb=a6a8b4411814eae523cfcd2db56df25865f5b67a;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/XMLToolingConfig.cpp b/xmltooling/XMLToolingConfig.cpp index 9773dcd..f154540 100644 --- a/xmltooling/XMLToolingConfig.cpp +++ b/xmltooling/XMLToolingConfig.cpp @@ -109,6 +109,22 @@ namespace xmltooling { } # endif #endif + +#ifdef WIN32 + BOOL LogEvent( + LPCSTR lpUNCServerName, + WORD wType, + DWORD dwEventID, + PSID lpUserSid, + LPCSTR message) + { + LPCSTR messages[] = {message, NULL}; + + HANDLE hElog = RegisterEventSource(lpUNCServerName, "OpenSAML XMLTooling Library"); + BOOL res = ReportEvent(hElog, wType, 0, dwEventID, lpUserSid, 1, 0, messages, NULL); + return (DeregisterEventSource(hElog) && res); + } +#endif } XMLToolingConfig& XMLToolingConfig::getConfig() @@ -176,7 +192,11 @@ bool XMLToolingInternalConfig::log_config(const char* config) } } catch (const ConfigureFailure& e) { - Category::getInstance(XMLTOOLING_LOGCAT".Logging").crit("failed to initialize log4cpp: %s", e.what()); + string msg = string("failed to configure logging: ") + e.what(); + Category::getInstance(XMLTOOLING_LOGCAT".Logging").crit(msg); +#ifdef WIN32 + LogEvent(NULL, EVENTLOG_ERROR_TYPE, 2100, NULL, msg.c_str()); +#endif return false; }