The msg variable is defined but not used in the log call. 

Rather than calling asl_vlog(), I suggest calling asl_log() as follows (and with additional thread and domain info to aid debugging):

`
        char *msg;
        vasprintf(&msg, format, args);
        if (msg != NULL) {
            int domain_id = 0;
            MonoDomain *domain = mono_domain_get();
            if (domain != NULL) {
                domain_id = mono_domain_get_id(domain);
            }
            asl_log(NULL, monobjc_aslmsg, level, "[Domain #%d, Thread #%d] %s", domain_id, pthread_mach_thread_np(pthread_self()), msg);
            free(msg);
        }
`