aboutsummaryrefslogtreecommitdiff
path: root/src/base/log/StdioLogTarget.cpp
blob: 64ddcacc32d51999b7b471374d6123a6a9d62723 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "cru/base/log/StdioLogTarget.h"

#include <iostream>

namespace cru::log {
StdioLogTarget::StdioLogTarget() {}

StdioLogTarget::~StdioLogTarget() {}

void StdioLogTarget::Write(log::LogLevel level, StringView s) {
#ifdef CRU_PLATFORM_WINDOWS
  if (level == log::LogLevel::Error) {
    std::wcerr.write(reinterpret_cast<const wchar_t*>(s.data()), s.size());
  } else {
    std::wcout.write(reinterpret_cast<const wchar_t*>(s.data()), s.size());
  }
#else
  std::string m = s.ToUtf8();

  if (level == log::LogLevel::Error) {
    std::cerr << m;
  } else {
    std::cout << m;
  }
#endif
}
}  // namespace cru::log