Index: uspace/lib/c/generic/io/log.c
===================================================================
--- uspace/lib/c/generic/io/log.c	(revision dc5aa568a4c8addb5f59d28700a384a1570b43d0)
+++ uspace/lib/c/generic/io/log.c	(revision ebbc8a74be1f1519844fe377d2f6c61c93492ed1)
@@ -62,7 +62,4 @@
 #define MESSAGE_BUFFER_SIZE 4096
 
-FIBRIL_RWLOCK_INITIALIZE(current_observed_level_lock);
-log_level_t current_observed_level;
-
 static int logger_register(async_sess_t *session, const char *prog_name)
 {
@@ -113,62 +110,4 @@
 
 	return reg_msg_rc;
-}
-
-static void cannot_use_level_changed_monitor(void)
-{
-	fibril_rwlock_write_lock(&current_observed_level_lock);
-	current_observed_level = LVL_LIMIT;
-	fibril_rwlock_write_unlock(&current_observed_level_lock);
-}
-
-static int observed_level_changed_monitor(void *arg)
-{
-	async_sess_t *monitor_session = service_connect_blocking(EXCHANGE_SERIALIZE, SERVICE_LOGGER, LOGGER_INTERFACE_SINK, 0);
-	if (monitor_session == NULL) {
-		cannot_use_level_changed_monitor();
-		return ENOMEM;
-	}
-
-	int rc = logger_register(monitor_session, log_prog_name);
-	if (rc != EOK) {
-		cannot_use_level_changed_monitor();
-		return rc;
-	}
-
-	async_exch_t *exchange = async_exchange_begin(monitor_session);
-	if (exchange == NULL) {
-		cannot_use_level_changed_monitor();
-		return ENOMEM;
-	}
-
-	while (true) {
-		sysarg_t has_reader;
-		sysarg_t msg_rc = async_req_0_1(exchange,
-		    LOGGER_BLOCK_UNTIL_READER_CHANGED, &has_reader);
-		if (msg_rc != EOK) {
-			cannot_use_level_changed_monitor();
-			break;
-		}
-
-		fibril_rwlock_write_lock(&current_observed_level_lock);
-		if ((bool) has_reader) {
-			current_observed_level = LVL_LIMIT;
-		} else {
-			current_observed_level = LVL_NOTE;
-		}
-		fibril_rwlock_write_unlock(&current_observed_level_lock);
-	}
-
-	async_exchange_end(exchange);
-
-	return EOK;
-}
-
-static log_level_t get_current_observed_level(void)
-{
-	fibril_rwlock_read_lock(&current_observed_level_lock);
-	log_level_t level = current_observed_level;
-	fibril_rwlock_read_unlock(&current_observed_level_lock);
-	return level;
 }
 
@@ -230,13 +169,4 @@
 	int rc = logger_register(logger_session, log_prog_name);
 
-	current_observed_level = LVL_NOTE;
-
-	fid_t observed_level_changed_fibril = fibril_create(observed_level_changed_monitor, NULL);
-	if (observed_level_changed_fibril == 0) {
-		cannot_use_level_changed_monitor();
-	} else {
-		fibril_add_ready(observed_level_changed_fibril);
-	}
-
 	return rc;
 }
@@ -266,9 +196,4 @@
 }
 
-bool _log_shall_record(log_context_t context, log_level_t level)
-{
-	return get_current_observed_level() >= level;
-}
-
 /** Write an entry to the log.
  *
@@ -278,10 +203,10 @@
  * @param fmt		Format string (no traling newline).
  */
-void _log_ctx_msg(log_context_t ctx, log_level_t level, const char *fmt, ...)
+void log_ctx_msg(log_context_t ctx, log_level_t level, const char *fmt, ...)
 {
 	va_list args;
 
 	va_start(args, fmt);
-	_log_ctx_msgv(ctx, level, fmt, args);
+	log_ctx_msgv(ctx, level, fmt, args);
 	va_end(args);
 }
@@ -294,11 +219,7 @@
  * @param fmt		Format string (no trailing newline)
  */
-void _log_ctx_msgv(log_context_t ctx, log_level_t level, const char *fmt, va_list args)
+void log_ctx_msgv(log_context_t ctx, log_level_t level, const char *fmt, va_list args)
 {
 	assert(level < LVL_LIMIT);
-
-	if (get_current_observed_level() < level) {
-		return;
-	}
 
 	char *message_buffer = malloc(MESSAGE_BUFFER_SIZE);
Index: uspace/lib/c/include/io/log.h
===================================================================
--- uspace/lib/c/include/io/log.h	(revision dc5aa568a4c8addb5f59d28700a384a1570b43d0)
+++ uspace/lib/c/include/io/log.h	(revision ebbc8a74be1f1519844fe377d2f6c61c93492ed1)
@@ -58,22 +58,7 @@
 extern int log_level_from_str(const char *, log_level_t *);
 
-extern bool _log_shall_record(log_context_t, log_level_t);
 extern int log_init(const char *, log_level_t);
 
 extern log_context_t log_context_create(const char *);
-
-#define log_ctx_msg(context, level, format, ...) \
-	do { \
-		if (_log_shall_record((context), (level))) { \
-			_log_ctx_msg((context), (level), format, ##__VA_ARGS__); \
-		} \
-	} while (false)
-
-#define log_ctx_msgv(context, level, format, args) \
-	do { \
-		if (_log_shall_record((context), (level))) { \
-			_log_ctx_msgv((context), (level), format, args); \
-		} \
-	} while (false)
 
 #define log_msg(level, format, ...) \
@@ -82,6 +67,6 @@
 	log_ctx_msgv(LOG_CONTEXT_DEFAULT, (level), (format), (args))
 
-extern void _log_ctx_msg(log_context_t, log_level_t, const char *, ...);
-extern void _log_ctx_msgv(log_context_t, log_level_t, const char *, va_list);
+extern void log_ctx_msg(log_context_t, log_level_t, const char *, ...);
+extern void log_ctx_msgv(log_context_t, log_level_t, const char *, va_list);
 
 #endif
Index: uspace/lib/c/include/ipc/logger.h
===================================================================
--- uspace/lib/c/include/ipc/logger.h	(revision dc5aa568a4c8addb5f59d28700a384a1570b43d0)
+++ uspace/lib/c/include/ipc/logger.h	(revision ebbc8a74be1f1519844fe377d2f6c61c93492ed1)
@@ -46,6 +46,5 @@
 	LOGGER_REGISTER = IPC_FIRST_USER_METHOD,
 	LOGGER_CREATE_CONTEXT,
-	LOGGER_MESSAGE,
-	LOGGER_BLOCK_UNTIL_READER_CHANGED
+	LOGGER_MESSAGE
 } logger_sink_request_t;
 
Index: uspace/srv/logger/logger.h
===================================================================
--- uspace/srv/logger/logger.h	(revision dc5aa568a4c8addb5f59d28700a384a1570b43d0)
+++ uspace/srv/logger/logger.h	(revision ebbc8a74be1f1519844fe377d2f6c61c93492ed1)
@@ -56,5 +56,4 @@
 int namespace_change_level(logging_namespace_t *, log_level_t);
 
-void namespace_wait_for_reader_change(logging_namespace_t *, bool *);
 bool namespace_has_reader(logging_namespace_t *, sysarg_t, log_level_t);
 void namespace_add_message(logging_namespace_t *, const char *, sysarg_t, log_level_t);
Index: uspace/srv/logger/namespace.c
===================================================================
--- uspace/srv/logger/namespace.c	(revision dc5aa568a4c8addb5f59d28700a384a1570b43d0)
+++ uspace/srv/logger/namespace.c	(revision ebbc8a74be1f1519844fe377d2f6c61c93492ed1)
@@ -51,5 +51,4 @@
 	fibril_mutex_t guard;
 	size_t writers_count;
-	fibril_condvar_t level_changed_cv;
 	FILE *logfile;
 	log_level_t level;
@@ -135,5 +134,4 @@
 
 	fibril_mutex_initialize(&namespace->guard);
-	fibril_condvar_initialize(&namespace->level_changed_cv);
 	namespace->writers_count = 0;
 	link_initialize(&namespace->link);
@@ -228,5 +226,4 @@
 		namespace->context[i].level = level;
 	}
-	fibril_condvar_broadcast(&namespace->level_changed_cv);
 	fibril_mutex_unlock(&namespace->guard);
 
@@ -277,5 +274,4 @@
 			namespace->context[i].level = new_level;
 			rc = EOK;
-			fibril_condvar_broadcast(&namespace->level_changed_cv);
 			goto leave;
 		}
@@ -287,14 +283,4 @@
 	return rc;
 }
-
-void namespace_wait_for_reader_change(logging_namespace_t *namespace, bool *has_reader_now)
-{
-	fibril_mutex_lock(&namespace->guard);
-	// FIXME: properly watch for state change
-	fibril_condvar_wait(&namespace->level_changed_cv, &namespace->guard);
-	*has_reader_now = true;
-	fibril_mutex_unlock(&namespace->guard);
-}
-
 
 void namespace_add_message(logging_namespace_t *namespace, const char *message, sysarg_t context, log_level_t level)
