add wide string to utf8 string support
This commit is contained in:
		@@ -195,6 +195,63 @@ inline void spdlog::logger::critical(const T& msg)
 | 
			
		||||
    log(level::critical, msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
 | 
			
		||||
#include <codecvt>
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::log(level::level_enum lvl, const wchar_t* msg)
 | 
			
		||||
{
 | 
			
		||||
	std::wstring_convert<std::codecvt_utf8<wchar_t> > conv;
 | 
			
		||||
 | 
			
		||||
	log(lvl, conv.to_bytes(msg));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::log(level::level_enum lvl, const wchar_t* fmt, const Args&... args)
 | 
			
		||||
{
 | 
			
		||||
	fmt::WMemoryWriter wWriter;
 | 
			
		||||
 | 
			
		||||
	wWriter.write(fmt, args...);
 | 
			
		||||
	log(lvl, wWriter.c_str());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::trace(const wchar_t* fmt, const Args&... args)
 | 
			
		||||
{
 | 
			
		||||
	log(level::trace, fmt, args...);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::debug(const wchar_t* fmt, const Args&... args)
 | 
			
		||||
{
 | 
			
		||||
	log(level::debug, fmt, args...);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::info(const wchar_t* fmt, const Args&... args)
 | 
			
		||||
{
 | 
			
		||||
	log(level::info, fmt, args...);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::warn(const wchar_t* fmt, const Args&... args)
 | 
			
		||||
{
 | 
			
		||||
	log(level::warn, fmt, args...);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::error(const wchar_t* fmt, const Args&... args)
 | 
			
		||||
{
 | 
			
		||||
	log(level::err, fmt, args...);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename... Args>
 | 
			
		||||
inline void spdlog::logger::critical(const wchar_t* fmt, const Args&... args)
 | 
			
		||||
{
 | 
			
		||||
	log(level::critical, fmt, args...);
 | 
			
		||||
}
 | 
			
		||||
#endif // SPDLOG_WCHAR_TO_UTF8_SUPPORT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,16 @@ public:
 | 
			
		||||
    template <typename Arg1, typename... Args> void warn(const char* fmt, const Arg1&, const Args&... args);
 | 
			
		||||
    template <typename Arg1, typename... Args> void error(const char* fmt, const Arg1&, const Args&... args);
 | 
			
		||||
    template <typename Arg1, typename... Args> void critical(const char* fmt, const Arg1&, const Args&... args);
 | 
			
		||||
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
 | 
			
		||||
	template <typename... Args> void log(level::level_enum lvl, const wchar_t* msg);
 | 
			
		||||
	template <typename... Args> void log(level::level_enum lvl, const wchar_t* fmt, const Args&... args);
 | 
			
		||||
	template <typename... Args> void trace(const wchar_t* fmt, const Args&... args);
 | 
			
		||||
	template <typename... Args> void debug(const wchar_t* fmt, const Args&... args);
 | 
			
		||||
	template <typename... Args> void info(const wchar_t* fmt, const Args&... args);
 | 
			
		||||
	template <typename... Args> void warn(const wchar_t* fmt, const Args&... args);
 | 
			
		||||
	template <typename... Args> void error(const wchar_t* fmt, const Args&... args);
 | 
			
		||||
	template <typename... Args> void critical(const wchar_t* fmt, const Args&... args);
 | 
			
		||||
#endif // SPDLOG_WCHAR_TO_UTF8_SUPPORT
 | 
			
		||||
 | 
			
		||||
    template <typename T> void log(level::level_enum lvl, const T&);
 | 
			
		||||
    template <typename T> void trace(const T&);
 | 
			
		||||
 
 | 
			
		||||
@@ -101,6 +101,12 @@
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
// Uncomment to enable wchar_t support (convert to utf8)
 | 
			
		||||
//
 | 
			
		||||
// #define SPDLOG_WCHAR_TO_UTF8_SUPPORT
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
// Uncomment to prevent child processes from inheriting log file descriptors
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user