@@ -215,6 +215,17 @@ class Logger {
215215 } \
216216 } while (0 )
217217
218+ #ifdef __APPLE__
219+ // macOS doesn't support std::ctype<char16_t>, so convert to regular string
220+ #define SQL_LOG_INFO_U16STREAM (expr ) \
221+ do { \
222+ if (mssql::Logger::GetInstance ().IsEnabled (mssql::LogLevel::Info)) { \
223+ std::ostringstream oss; \
224+ oss << expr; \
225+ mssql::Logger::GetInstance ().Info (oss.str ()); \
226+ } \
227+ } while (0 )
228+ #else
218229#define SQL_LOG_INFO_U16STREAM (expr ) \
219230 do { \
220231 if (mssql::Logger::GetInstance ().IsEnabled (mssql::LogLevel::Info)) { \
@@ -223,7 +234,18 @@ class Logger {
223234 mssql::Logger::GetInstance ().Info (u16oss.str ()); \
224235 } \
225236 } while (0 )
237+ #endif
226238
239+ #ifdef __APPLE__
240+ #define SQL_LOG_DEBUG_U16STREAM (expr ) \
241+ do { \
242+ if (mssql::Logger::GetInstance ().IsEnabled (mssql::LogLevel::Debug)) { \
243+ std::ostringstream oss; \
244+ oss << expr; \
245+ mssql::Logger::GetInstance ().Debug (oss.str ()); \
246+ } \
247+ } while (0 )
248+ #else
227249#define SQL_LOG_DEBUG_U16STREAM (expr ) \
228250 do { \
229251 if (mssql::Logger::GetInstance ().IsEnabled (mssql::LogLevel::Debug)) { \
@@ -232,7 +254,18 @@ class Logger {
232254 mssql::Logger::GetInstance ().Debug (u16oss.str ()); \
233255 } \
234256 } while (0 )
257+ #endif
235258
259+ #ifdef __APPLE__
260+ #define SQL_LOG_TRACE_U16STREAM (expr ) \
261+ do { \
262+ if (mssql::Logger::GetInstance ().IsEnabled (mssql::LogLevel::Trace)) { \
263+ std::ostringstream oss; \
264+ oss << expr; \
265+ mssql::Logger::GetInstance ().Trace (oss.str ()); \
266+ } \
267+ } while (0 )
268+ #else
236269#define SQL_LOG_TRACE_U16STREAM (expr ) \
237270 do { \
238271 if (mssql::Logger::GetInstance ().IsEnabled (mssql::LogLevel::Trace)) { \
@@ -241,6 +274,7 @@ class Logger {
241274 mssql::Logger::GetInstance ().Trace (u16oss.str ()); \
242275 } \
243276 } while (0 )
277+ #endif
244278
245279// Function entry/exit logging helpers
246280#define SQL_LOG_FUNC_ENTRY () \
0 commit comments