Allow configurable verbosity
This commit is contained in:
parent
80ed4d4d20
commit
5a26ed645a
|
@ -16,7 +16,9 @@ typedef enum {
|
|||
|
||||
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__
|
||||
#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) {
|
||||
wlr_log_init(L_DEBUG, NULL);
|
||||
assert(server.config = roots_config_create_from_args(argc, argv));
|
||||
assert(server.wl_display = wl_display_create());
|
||||
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>
|
||||
|
||||
static bool colored = true;
|
||||
static log_importance_t log_importance = L_ERROR;
|
||||
|
||||
static const char *verbosity_colors[] = {
|
||||
[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) {
|
||||
if (verbosity > log_importance) {
|
||||
return;
|
||||
}
|
||||
// prefix the time to the log message
|
||||
struct tm result;
|
||||
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;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
void _wlr_vlog(log_importance_t verbosity, const char *fmt, va_list args) {
|
||||
log_callback(verbosity, fmt, args);
|
||||
|
|
Loading…
Reference in New Issue