GrabBag/VrUtils/log4cpp/src/Win32DebugAppender.cpp
2025-07-23 01:35:14 +08:00

57 lines
1.3 KiB
C++

/*
* Win32DebugAppender.cpp
*
* Copyright 2002, the Log4cpp project.
*
* See the COPYING file for the terms of usage and distribution.
*/
#ifdef WIN32 // only available on Win32
#include "PortabilityImpl.hh"
#ifdef LOG4CPP_HAVE_IO_H
# include <io.h>
#endif
#include <windows.h>
#include <winbase.h>
#include <stdio.h>
#include "log4cpp/Category.hh"
#include "log4cpp/Win32DebugAppender.hh"
#include <log4cpp/FactoryParams.hh>
#include <memory>
namespace log4cpp {
Win32DebugAppender::Win32DebugAppender(const std::string& name) :
LayoutAppender(name) {
}
Win32DebugAppender::~Win32DebugAppender() {
close();
}
void Win32DebugAppender::close() {
}
void Win32DebugAppender::_append(const LoggingEvent& event) {
std::string message(_getLayout().format(event));
#ifdef __WIN_ROS__
::OutputDebugString((LPCSTR)message.c_str());
#else
::OutputDebugString((LPCWSTR)message.c_str());
#endif
}
std::auto_ptr<Appender> create_win32_debug_appender(const FactoryParams& params)
{
std::string name;
params.get_for("win32 debug appender").required("name", name);
return std::auto_ptr<Appender>(new Win32DebugAppender(name));
}
}
#endif // WIN32