summaryrefslogtreecommitdiff
path: root/libevdev/libevdev.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-09-03 16:58:29 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-09-10 09:37:59 +1000
commitad709cf95377d1f95b1db4aa2b7fec11382d44dc (patch)
tree46a09578d5961829faa320be6c3dc128ac839abc /libevdev/libevdev.c
parent4b5ffa6bea0d4ac92d567fdb3579baf0fe3ab80d (diff)
downloadlibevdev-ad709cf95377d1f95b1db4aa2b7fec11382d44dc.tar.gz
Log to stderr by default
The logging we do use atm inside the library is largely to spot application errors. Log that to stderr by default so it doesn't get lost. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Diffstat (limited to 'libevdev/libevdev.c')
-rw-r--r--libevdev/libevdev.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c
index dcf2beb..aa5cbd6 100644
--- a/libevdev/libevdev.c
+++ b/libevdev/libevdev.c
@@ -49,11 +49,32 @@ init_event_queue(struct libevdev *dev)
}
static void
-libevdev_noop_log_func(enum libevdev_log_priority priority,
+libevdev_dflt_log_func(enum libevdev_log_priority priority,
void *data,
const char *file, int line, const char *func,
const char *format, va_list args)
{
+ const char *prefix;
+ switch(priority) {
+ case LIBEVDEV_LOG_ERROR: prefix = "libevdev error"; break;
+ case LIBEVDEV_LOG_INFO: prefix = "libevdev info"; break;
+ case LIBEVDEV_LOG_DEBUG:
+ prefix = "libevdev debug";
+ break;
+ default:
+ break;
+ }
+ /* default logging format:
+ libevev error in libevdev_some_func: blah blah
+ libevev info in libevdev_some_func: blah blah
+ libevev debug in file.c:123:libevdev_some_func: blah blah
+ */
+
+ fprintf(stderr, "%s in ", prefix);
+ if (priority == LIBEVDEV_LOG_DEBUG)
+ fprintf(stderr, "%s:%d:", file, line);
+ fprintf(stderr, "%s: ", func);
+ vfprintf(stderr, format, args);
}
/*
@@ -61,7 +82,7 @@ libevdev_noop_log_func(enum libevdev_log_priority priority,
*/
struct logdata log_data = {
LIBEVDEV_LOG_INFO,
- libevdev_noop_log_func,
+ libevdev_dflt_log_func,
NULL,
};
@@ -73,6 +94,9 @@ log_msg(enum libevdev_log_priority priority,
{
va_list args;
+ if (!log_data.handler)
+ return;
+
va_start(args, format);
log_data.handler(priority, data, file, line, func, format, args);
va_end(args);
@@ -137,7 +161,7 @@ libevdev_set_log_handler(struct libevdev *dev, libevdev_log_func_t logfunc)
LIBEVDEV_EXPORT void
libevdev_set_log_function(libevdev_log_func_t logfunc, void *data)
{
- log_data.handler = logfunc ? logfunc : libevdev_noop_log_func;
+ log_data.handler = logfunc;
log_data.userdata = data;
}