21
21
#include <gdk/gdk.h>
24
27
#include "Introspection.h"
25
28
#include "IntrospectionService.h"
33
GLogLevelFlags levels_to_log;
35
std::ostream& get_log_stream()
37
if (!filename.empty())
39
static std::ofstream fstream(filename);
48
std::string get_level_name(GLogLevelFlags lvl)
52
case G_LOG_LEVEL_DEBUG:
54
case G_LOG_LEVEL_INFO:
56
case G_LOG_LEVEL_MESSAGE:
58
case G_LOG_LEVEL_WARNING:
60
case G_LOG_LEVEL_CRITICAL:
62
case G_LOG_LEVEL_ERROR:
27
69
AutopilotIntrospection* autopilot_introspection = NULL;
29
void LogToFile (const gchar* log_domain,
71
void LogHandler (const gchar* log_domain,
30
72
GLogLevelFlags log_level,
31
73
const gchar* message,
32
74
gpointer user_data)
34
FILE* logfile = fopen ("autopilot-gtk.log", "a");
35
if (logfile == NULL) {
36
//g_warning("rerouting logger to console");
39
fprintf (logfile, "%s\n", message);
76
if (log_level & levels_to_log)
78
std::string domain = log_domain ? log_domain : "default";
79
get_log_stream() << "[" << domain << "] " << get_level_name(log_level) << ": " << message << std::endl;
83
void initialise_logging()
85
if (getenv("AP_GTK_LOG_VERBOSE"))
87
levels_to_log = (GLogLevelFlags) (
90
G_LOG_FLAG_RECURSION);
94
levels_to_log = (GLogLevelFlags)(
97
G_LOG_LEVEL_CRITICAL |
99
G_LOG_FLAG_RECURSION);
101
char* fname = getenv("AP_GTK_LOG_FILE");
102
if (fname && strcmp(fname, "") != 0)
107
g_log_set_default_handler(LogHandler, NULL);
43
110
int gtk_module_init(gint argc, char *argv[]) {
44
//g_log_set_handler (NULL, G_LOG_LEVEL_MASK, LogToFile, NULL);
45
//g_log_set_handler ("GLib", G_LOG_LEVEL_MASK, LogToFile, NULL);
111
initialise_logging();
46
112
autopilot_introspection = autopilot_introspection_skeleton_new ();
47
113
g_bus_get (G_BUS_TYPE_SESSION, NULL, bus_acquired, NULL);
115
std::cout << "Autopilot GTK interface loaded." << std::endl;