Glad to know you are making progress! Just a few clarifications.
'Converter<.?AVBaseComponent@Noesis@@>' binding converter failed to convert value 'ToggleButton: New Game' (type 'ToggleButton')
The ugly string
Converter<.?AVBaseComponent@Noesis@@> in the log message is not happening in the next major version.
I also think that our Integration sample if very simple regarding logging, the channel parameter is being ignored and all the binding messages are being sent to that channel. Those messages can be silenced by default because they are quite verbose and only useful when you are trying to debug binding issues. This is the way we are handling logs in the Launcher (also included with source code in the App Framework):
SetLogHandler([](const char*, uint32_t, uint32_t level, const char* channel, const char* msg)
{
// By default only global channel is dumped
bool filter = !StrIsNullOrEmpty(channel);
// Enable "Binding" channel by command line
if (gCommandLine.HasOption("log_binding"))
{
if (StrEquals(channel, "Binding"))
{
filter = false;
}
}
if (!filter)
{
level = level > NS_LOG_LEVEL_ERROR ? NS_LOG_LEVEL_ERROR : level;
#if defined(NS_PLATFORM_ANDROID)
const int priority[] = { ANDROID_LOG_VERBOSE, ANDROID_LOG_DEBUG, ANDROID_LOG_INFO,
ANDROID_LOG_WARN, ANDROID_LOG_ERROR};
(void)__android_log_print(priority[level], "Noesis", "%s", msg);
#elif defined(NS_PLATFORM_EMSCRIPTEN)
const int flags[] = { 0, 0, 0, EM_LOG_WARN, EM_LOG_ERROR };
const char* prefixes[] = { "T", "D", "I", "W", "E" };
emscripten_log(EM_LOG_CONSOLE | flags[level], "[NOESIS/%s] %s", prefixes[level], msg);
#else
char out[512];
const char* prefixes[] = { "T", "D", "I", "W", "E" };
snprintf(out, sizeof(out), "[NOESIS/%s] %s\n", prefixes[level], msg);
#ifdef NS_PLATFORM_WINDOWS
OutputDebugString(out);
#else
fprintf(stderr, "%s", out);
#endif
#endif
}
});