aboutsummaryrefslogtreecommitdiff
path: root/darwin-bootstrap/ib-log.h
diff options
context:
space:
mode:
Diffstat (limited to 'darwin-bootstrap/ib-log.h')
-rw-r--r--darwin-bootstrap/ib-log.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/darwin-bootstrap/ib-log.h b/darwin-bootstrap/ib-log.h
new file mode 100644
index 0000000..fee70b5
--- /dev/null
+++ b/darwin-bootstrap/ib-log.h
@@ -0,0 +1,27 @@
+#pragma once
+#include <dispatch/dispatch.h>
+#include <stdio.h>
+#include <unistd.h>
+
+static FILE *logfp;
+static void open_logfp_if_necessary() {
+ /* syslog() doesn't seem to work from launchd... */
+ static dispatch_once_t pred;
+ dispatch_once(&pred, ^{
+ char filename[128];
+ sprintf(filename, "/tmp/substitute-" IB_LOG_NAME "-log.%ld",
+ (long) getpid());
+ logfp = fopen(filename, "w");
+ if (!logfp) {
+ /* Ack... */
+ logfp = stderr;
+ }
+ });
+}
+#define ib_log(fmt, args...) do { \
+ open_logfp_if_necessary(); \
+ fprintf(logfp, fmt "\n", ##args); \
+ fflush(logfp); \
+} while(0)
+
+#define IB_VERBOSE 0