diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-04-24 11:24:34 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-04-24 11:25:03 -0400 |
commit | 2fabe64bbbaad5d142bd056943dd3d9fd080ff01 (patch) | |
tree | 65c000925e34d7e3a823c23da7d0e81523762381 | |
parent | d2b892a9aedbbe1e8160e1f12d5295da00566f2a (diff) |
restore sending stderr/stdout to the console
This is done unconditionally right now for any ARDOUR_BUNDLED case. Need to
find a conditional, so that we can run from the command line/inside a debugger.
The -psn_XXXX argument will likely work
-rw-r--r-- | gtk2_ardour/bundle_env_cocoa.cc | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/gtk2_ardour/bundle_env_cocoa.cc b/gtk2_ardour/bundle_env_cocoa.cc index df951b8801..8603db3f45 100644 --- a/gtk2_ardour/bundle_env_cocoa.cc +++ b/gtk2_ardour/bundle_env_cocoa.cc @@ -40,6 +40,7 @@ #include "i18n.h" +#include <asl.h> #include <Carbon/Carbon.h> #include <mach-o/dyld.h> #include <sys/param.h> @@ -50,8 +51,27 @@ using namespace std; extern void set_language_preference (); // cocoacarbon.mm +static void +setup_logging(void) +{ + aslmsg msg; + aslclient c = asl_open (PROGRAM_NAME, "com.apple.console", 0); + + msg = asl_new(ASL_TYPE_MSG); + asl_set(msg, ASL_KEY_FACILITY, "com.apple.console"); + asl_set(msg, ASL_KEY_LEVEL, ASL_STRING_NOTICE); + asl_set(msg, ASL_KEY_READ_UID, "-1"); + + int fd = dup(2); + //asl_set_filter(c, ASL_FILTER_MASK_UPTO(ASL_LEVEL_DEBUG)); + asl_add_log_file(c, fd); + asl_log(c, NULL, ASL_LEVEL_INFO, string_compose ("Hello world from %1", PROGRAM_NAME).c_str()); + asl_log_descriptor(c, msg, ASL_LEVEL_INFO, 1, ASL_LOG_DESCRIPTOR_WRITE); + asl_log_descriptor(c, msg, ASL_LEVEL_INFO, 2, ASL_LOG_DESCRIPTOR_WRITE); +} + void -fixup_bundle_environment (int, char* [], string & localedir) +fixup_bundle_environment (int argc, char* argv[], string & localedir) { if (!g_getenv ("ARDOUR_BUNDLED")) { return; @@ -61,6 +81,8 @@ fixup_bundle_environment (int, char* [], string & localedir) set_language_preference (); + setup_logging (); + char execpath[MAXPATHLEN+1]; uint32_t pathsz = sizeof (execpath); |