Index: uspace/lib/c/generic/io/logctl.c
===================================================================
--- uspace/lib/c/generic/io/logctl.c	(revision 0a6a9965cbf4aba18fb5a2ba0694a5abd0f98044)
+++ uspace/lib/c/generic/io/logctl.c	(revision b52dd1de1cebdd2d4803f43c0f81f89a172198c2)
@@ -36,5 +36,8 @@
 #include <io/logctl.h>
 #include <ipc/logger.h>
+#include <sysinfo.h>
 #include <ns.h>
+
+#define SYSINFO_DEFAULT_LOG_LEVEL "logger.level"
 
 /** IPC session with the logger service. */
@@ -73,4 +76,21 @@
 }
 
+int logctl_get_boot_level(log_level_t *level)
+{
+	sysarg_t boot_level_arg;
+	int rc = sysinfo_get_value(SYSINFO_DEFAULT_LOG_LEVEL, &boot_level_arg);
+	if (rc != EOK)
+		return rc;
+
+	log_level_t boot_level = (log_level_t) boot_level_arg;
+	if (boot_level >= LVL_LIMIT)
+		return EINVAL;
+
+	if (level != NULL)
+		*level = (log_level_t) boot_level;
+
+	return EOK;
+}
+
 /** @}
  */
Index: uspace/lib/c/include/io/logctl.h
===================================================================
--- uspace/lib/c/include/io/logctl.h	(revision 0a6a9965cbf4aba18fb5a2ba0694a5abd0f98044)
+++ uspace/lib/c/include/io/logctl.h	(revision b52dd1de1cebdd2d4803f43c0f81f89a172198c2)
@@ -37,4 +37,5 @@
 
 extern int logctl_set_default_level(log_level_t);
+extern int logctl_get_boot_level(log_level_t *);
 
 #endif
Index: uspace/srv/logger/main.c
===================================================================
--- uspace/srv/logger/main.c	(revision 0a6a9965cbf4aba18fb5a2ba0694a5abd0f98044)
+++ uspace/srv/logger/main.c	(revision b52dd1de1cebdd2d4803f43c0f81f89a172198c2)
@@ -39,4 +39,5 @@
 #include <ipc/logger.h>
 #include <io/log.h>
+#include <io/logctl.h>
 #include <ns.h>
 #include <async.h>
@@ -189,7 +190,16 @@
 	printf(NAME ": HelenOS Logging Service\n");
 	
+	/* Get default logging level from sysinfo (if available). */
+	log_level_t boot_logging_level = LVL_NOTE;
+	int rc = logctl_get_boot_level(&boot_logging_level);
+	if (rc == EOK)
+		set_default_logging_level(boot_logging_level);
+	else
+		printf(NAME ": Warn: failed to get logging level from sysinfo: %s.\n",
+		    str_error(rc));
+
 	async_set_client_connection(connection_handler);
 	
-	int rc = service_register(SERVICE_LOGGER);
+	rc = service_register(SERVICE_LOGGER);
 	if (rc != EOK) {
 		printf(NAME ": failed to register: %s.\n", str_error(rc));
