Merge pull request #546 from 4e554c4c/config_logs
Allow configurable verbosity
This commit is contained in:
commit
ae3810c2a7
|
@ -16,7 +16,9 @@ typedef enum {
|
||||||
|
|
||||||
typedef void (*log_callback_t)(log_importance_t importance, const char *fmt, va_list args);
|
typedef void (*log_callback_t)(log_importance_t importance, const char *fmt, va_list args);
|
||||||
|
|
||||||
void wlr_log_init(log_callback_t callback);
|
// Will log all messages less than or equal to `verbosity`
|
||||||
|
// If `callback` is NULL, wlr will use its default logger.
|
||||||
|
void wlr_log_init(log_importance_t verbosity, log_callback_t callback);
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define ATTRIB_PRINTF(start, end) __attribute__((format(printf, start, end)))
|
#define ATTRIB_PRINTF(start, end) __attribute__((format(printf, start, end)))
|
||||||
|
|
|
@ -28,6 +28,7 @@ static void ready(struct wl_listener *listener, void *data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
wlr_log_init(L_DEBUG, NULL);
|
||||||
assert(server.config = roots_config_create_from_args(argc, argv));
|
assert(server.config = roots_config_create_from_args(argc, argv));
|
||||||
assert(server.wl_display = wl_display_create());
|
assert(server.wl_display = wl_display_create());
|
||||||
assert(server.wl_event_loop = wl_display_get_event_loop(server.wl_display));
|
assert(server.wl_event_loop = wl_display_get_event_loop(server.wl_display));
|
||||||
|
|
11
util/log.c
11
util/log.c
|
@ -9,6 +9,7 @@
|
||||||
#include <wlr/util/log.h>
|
#include <wlr/util/log.h>
|
||||||
|
|
||||||
static bool colored = true;
|
static bool colored = true;
|
||||||
|
static log_importance_t log_importance = L_ERROR;
|
||||||
|
|
||||||
static const char *verbosity_colors[] = {
|
static const char *verbosity_colors[] = {
|
||||||
[L_SILENT] = "",
|
[L_SILENT] = "",
|
||||||
|
@ -18,6 +19,9 @@ static const char *verbosity_colors[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
void wlr_log_stderr(log_importance_t verbosity, const char *fmt, va_list args) {
|
void wlr_log_stderr(log_importance_t verbosity, const char *fmt, va_list args) {
|
||||||
|
if (verbosity > log_importance) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// prefix the time to the log message
|
// prefix the time to the log message
|
||||||
struct tm result;
|
struct tm result;
|
||||||
time_t t = time(NULL);
|
time_t t = time(NULL);
|
||||||
|
@ -44,9 +48,14 @@ void wlr_log_stderr(log_importance_t verbosity, const char *fmt, va_list args) {
|
||||||
|
|
||||||
static log_callback_t log_callback = wlr_log_stderr;
|
static log_callback_t log_callback = wlr_log_stderr;
|
||||||
|
|
||||||
void wlr_log_init(log_callback_t callback) {
|
void wlr_log_init(log_importance_t verbosity, log_callback_t callback) {
|
||||||
|
if (verbosity < L_LAST) {
|
||||||
|
log_importance = verbosity;
|
||||||
|
}
|
||||||
|
if (callback) {
|
||||||
log_callback = callback;
|
log_callback = callback;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void _wlr_vlog(log_importance_t verbosity, const char *fmt, va_list args) {
|
void _wlr_vlog(log_importance_t verbosity, const char *fmt, va_list args) {
|
||||||
log_callback(verbosity, fmt, args);
|
log_callback(verbosity, fmt, args);
|
||||||
|
|
Loading…
Reference in New Issue