diff --git a/boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_config.h b/boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_config.h
index f0842a3..8051acf 100644
--- a/boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_config.h
+++ b/boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_config.h
@@ -51,6 +51,9 @@
 #if MYNEWT_VAL(BOOTUTIL_OVERWRITE_ONLY_FAST)
 #define MCUBOOT_OVERWRITE_ONLY_FAST 1
 #endif
+#if MYNEWT_VAL(BOOTUTIL_HAVE_LOGGING)
+#define MCUBOOT_HAVE_LOGGING 1
+#endif
 
 #define MCUBOOT_MAX_IMG_SECTORS       MYNEWT_VAL(BOOTUTIL_MAX_IMG_SECTORS)
 
diff --git a/boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_logging.h b/boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_logging.h
new file mode 100644
index 0000000..26f36d5
--- /dev/null
+++ b/boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_logging.h
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#ifndef __MCUBOOT_LOGGING_H__
+#define __MCUBOOT_LOGGING_H__
+
+#include <syscfg/syscfg.h>
+#include <stdio.h>
+
+#define BOOTUTIL_LOG_LEVEL_OFF     1
+#define BOOTUTIL_LOG_LEVEL_ERROR   2
+#define BOOTUTIL_LOG_LEVEL_WARNING 3
+#define BOOTUTIL_LOG_LEVEL_INFO    4
+#define BOOTUTIL_LOG_LEVEL_DEBUG   5
+
+#define MCUBOOT_LOG_LEVEL_OFF      BOOTUTIL_LOG_LEVEL_OFF
+#define MCUBOOT_LOG_LEVEL_ERROR    BOOTUTIL_LOG_LEVEL_ERROR
+#define MCUBOOT_LOG_LEVEL_WARNING  BOOTUTIL_LOG_LEVEL_WARNING
+#define MCUBOOT_LOG_LEVEL_INFO     BOOTUTIL_LOG_LEVEL_INFO
+#define MCUBOOT_LOG_LEVEL_DEBUG    BOOTUTIL_LOG_LEVEL_DEBUG
+
+#ifndef MCUBOOT_LOG_LEVEL
+#define MCUBOOT_LOG_LEVEL MYNEWT_VAL(BOOTUTIL_LOG_LEVEL)
+#endif
+
+#if !((MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_OFF) && \
+      (MCUBOOT_LOG_LEVEL <= MCUBOOT_LOG_LEVEL_DEBUG))
+#error "Invalid MCUBOOT_LOG_LEVEL config."
+#endif
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_ERROR
+#define MCUBOOT_LOG_ERR(_fmt, ...)                                      \
+    do {                                                                \
+        printf("[ERR] " _fmt "\n", ##__VA_ARGS__);                      \
+    } while (0)
+#else
+#define MCUBOOT_LOG_ERR(...) IGNORE(__VA_ARGS__)
+#endif
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_WARNING
+#define MCUBOOT_LOG_WRN(_fmt, ...)                                      \
+    do {                                                                \
+        printf("[WRN] " _fmt "\n", ##__VA_ARGS__);                      \
+    } while (0)
+#else
+#define MCUBOOT_LOG_WRN(...) IGNORE(__VA_ARGS__)
+#endif
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_INFO
+#define MCUBOOT_LOG_INF(_fmt, ...)                                      \
+    do {                                                                \
+        printf("[INF] " _fmt "\n", ##__VA_ARGS__);                      \
+    } while (0)
+#else
+#define MCUBOOT_LOG_INF(...) IGNORE(__VA_ARGS__)
+#endif
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_DEBUG
+#define MCUBOOT_LOG_DBG(_fmt, ...)                                      \
+    do {                                                                \
+        printf("[DBG] " _fmt "\n", ##__VA_ARGS__);                      \
+    } while (0)
+#else
+#define MCUBOOT_LOG_DBG(...) IGNORE(__VA_ARGS__)
+#endif
+
+#endif
diff --git a/boot/mynewt/mcuboot_config/syscfg.yml b/boot/mynewt/mcuboot_config/syscfg.yml
index 9f4c4b5..467bcee 100644
--- a/boot/mynewt/mcuboot_config/syscfg.yml
+++ b/boot/mynewt/mcuboot_config/syscfg.yml
@@ -49,3 +49,15 @@
     BOOTUTIL_MAX_IMG_SECTORS:
         description: 'Maximum number of sectors that are swapped.'
         value: 128
+    BOOTUTIL_HAVE_LOGGING:
+        description: 'Enable serial logging'
+        value: 0
+    BOOTUTIL_LOG_LEVEL:
+        description: >
+            Default console log level. Valid values are:
+                BOOTUTIL_LOG_LEVEL_OFF
+                BOOTUTIL_LOG_LEVEL_ERROR
+                BOOTUTIL_LOG_LEVEL_WARNING
+                BOOTUTIL_LOG_LEVEL_INFO
+                BOOTUTIL_LOG_LEVEL_DEBUG
+        value: 'BOOTUTIL_LOG_LEVEL_INFO'
diff --git a/boot/zephyr/Kconfig b/boot/zephyr/Kconfig
index 87664ec..10eb22d 100644
--- a/boot/zephyr/Kconfig
+++ b/boot/zephyr/Kconfig
@@ -78,6 +78,15 @@
 
 	  This is not available for all targets.
 
+config BOOT_HAVE_LOGGING
+	bool "MCUboot have logging enabled"
+	default y
+	select SYS_LOG
+	help
+	  If y, enables logging on the serial port. The log level can
+	  be defined by setting `SYS_LOG_DEFAULT_LEVEL`.
+	  If unsure, leave at the default value.
+
 menuconfig MCUBOOT_SERIAL
 	bool "MCUboot serial recovery"
 	default n
diff --git a/boot/zephyr/include/mcuboot_config/mcuboot_config.h b/boot/zephyr/include/mcuboot_config/mcuboot_config.h
index 0b65cd0..97a0f85 100644
--- a/boot/zephyr/include/mcuboot_config/mcuboot_config.h
+++ b/boot/zephyr/include/mcuboot_config/mcuboot_config.h
@@ -39,6 +39,10 @@
 #define MCUBOOT_OVERWRITE_ONLY_FAST
 #endif
 
+#ifdef CONFIG_BOOT_HAVE_LOGGING
+#define MCUBOOT_HAVE_LOGGING 1
+#endif
+
 /*
  * Enabling this option uses newer flash map APIs. This saves RAM and
  * avoids deprecated API usage.
diff --git a/boot/zephyr/include/mcuboot_config/mcuboot_logging.h b/boot/zephyr/include/mcuboot_config/mcuboot_logging.h
new file mode 100644
index 0000000..8ee5378
--- /dev/null
+++ b/boot/zephyr/include/mcuboot_config/mcuboot_logging.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2018 Runtime Inc
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef __MCUBOOT_LOGGING_H__
+#define __MCUBOOT_LOGGING_H__
+
+#ifndef __BOOTSIM__
+
+/*
+ * When building for targets running Zephyr, delegate to its native
+ * logging subsystem.
+ *
+ * In this case:
+ *
+ * - MCUBOOT_LOG_LEVEL determines SYS_LOG_LEVEL,
+ * - MCUBOOT_LOG_ERR() and friends are SYS_LOG_ERR() etc.
+ * - SYS_LOG_DOMAIN is unconditionally set to "MCUBOOT"
+ */
+#define MCUBOOT_LOG_LEVEL_OFF      SYS_LOG_LEVEL_OFF
+#define MCUBOOT_LOG_LEVEL_ERROR    SYS_LOG_LEVEL_ERROR
+#define MCUBOOT_LOG_LEVEL_WARNING  SYS_LOG_LEVEL_WARNING
+#define MCUBOOT_LOG_LEVEL_INFO     SYS_LOG_LEVEL_INFO
+#define MCUBOOT_LOG_LEVEL_DEBUG    SYS_LOG_LEVEL_DEBUG
+
+/* Treat MCUBOOT_LOG_LEVEL equivalently to SYS_LOG_LEVEL. */
+#ifndef MCUBOOT_LOG_LEVEL
+#define MCUBOOT_LOG_LEVEL CONFIG_SYS_LOG_DEFAULT_LEVEL
+#elif (MCUBOOT_LOG_LEVEL < CONFIG_SYS_LOG_OVERRIDE_LEVEL)
+#undef MCUBOOT_LOG_LEVEL
+#define MCUBOOT_LOG_LEVEL CONFIG_SYS_LOG_OVERRIDE_LEVEL
+#endif
+
+#define SYS_LOG_LEVEL MCUBOOT_LOG_LEVEL
+
+#undef SYS_LOG_DOMAIN
+#define SYS_LOG_DOMAIN "MCUBOOT"
+
+#define MCUBOOT_LOG_ERR(...) SYS_LOG_ERR(__VA_ARGS__)
+#define MCUBOOT_LOG_WRN(...) SYS_LOG_WRN(__VA_ARGS__)
+#define MCUBOOT_LOG_INF(...) SYS_LOG_INF(__VA_ARGS__)
+#define MCUBOOT_LOG_DBG(...) SYS_LOG_DBG(__VA_ARGS__)
+
+#include <logging/sys_log.h>
+
+#endif /* !__BOOTSIM__ */
+
+#endif /* __MCUBOOT_LOGGING_H__ */
diff --git a/sim/mcuboot-sys/build.rs b/sim/mcuboot-sys/build.rs
index 81e21d1..a49c9b6 100644
--- a/sim/mcuboot-sys/build.rs
+++ b/sim/mcuboot-sys/build.rs
@@ -82,8 +82,8 @@
     conf.file("../../boot/bootutil/src/bootutil_misc.c");
     conf.file("csupport/run.c");
     conf.include("../../boot/bootutil/include");
-    conf.include("../../boot/zephyr/include");
     conf.include("csupport");
+    conf.include("../../boot/zephyr/include");
     conf.debug(true);
     conf.flag("-Wall");
     conf.flag("-Werror");
diff --git a/sim/mcuboot-sys/csupport/mcuboot_config/mcuboot_logging.h b/sim/mcuboot-sys/csupport/mcuboot_config/mcuboot_logging.h
new file mode 100644
index 0000000..d9412b3
--- /dev/null
+++ b/sim/mcuboot-sys/csupport/mcuboot_config/mcuboot_logging.h
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef __MCUBOOT_LOGGING_H__
+#define __MCUBOOT_LOGGING_H__
+
+#include <stdio.h>
+
+#define MCUBOOT_LOG_LEVEL_OFF      0
+#define MCUBOOT_LOG_LEVEL_ERROR    1
+#define MCUBOOT_LOG_LEVEL_WARNING  2
+#define MCUBOOT_LOG_LEVEL_INFO     3
+#define MCUBOOT_LOG_LEVEL_DEBUG    4
+
+/*
+ * The compiled log level determines the maximum level that can be
+ * printed.  Messages at or below this level can be printed, provided
+ * they are also enabled through the Rust logging system, such as by
+ * setting RUST_LOG to bootsim::api=info.
+ */
+#ifndef MCUBOOT_LOG_LEVEL
+#define MCUBOOT_LOG_LEVEL MCUBOOT_LOG_LEVEL_INFO
+#endif
+
+int sim_log_enabled(int level);
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_ERROR
+#define MCUBOOT_LOG_ERR(_fmt, ...)                                      \
+    do {                                                                \
+        if (sim_log_enabled(MCUBOOT_LOG_LEVEL_ERROR)) {                 \
+            fprintf(stderr, "[ERR] " _fmt "\n", ##__VA_ARGS__);         \
+        }                                                               \
+    } while (0)
+#else
+#define MCUBOOT_LOG_ERR(...) IGNORE(__VA_ARGS__)
+#endif
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_WARNING
+#define MCUBOOT_LOG_WRN(_fmt, ...)                                      \
+    do {                                                                \
+        if (sim_log_enabled(MCUBOOT_LOG_LEVEL_WARNING)) {               \
+            fprintf(stderr, "[WRN] " _fmt "\n", ##__VA_ARGS__);         \
+        }                                                               \
+    } while (0)
+#else
+#define MCUBOOT_LOG_WRN(...) IGNORE(__VA_ARGS__)
+#endif
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_INFO
+#define MCUBOOT_LOG_INF(_fmt, ...)                                      \
+    do {                                                                \
+        if (sim_log_enabled(MCUBOOT_LOG_LEVEL_INFO)) {                  \
+            fprintf(stderr, "[INF] " _fmt "\n", ##__VA_ARGS__);         \
+        }                                                               \
+    } while (0)
+#else
+#define MCUBOOT_LOG_INF(...) IGNORE(__VA_ARGS__)
+#endif
+
+#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_DEBUG
+#define MCUBOOT_LOG_DBG(_fmt, ...)                                      \
+    do {                                                                \
+        if (sim_log_enabled(MCUBOOT_LOG_LEVEL_DEBUG)) {                 \
+            fprintf(stderr, "[DBG] " _fmt "\n", ##__VA_ARGS__);         \
+        }                                                               \
+    } while (0)
+#else
+#define MCUBOOT_LOG_DBG(...) IGNORE(__VA_ARGS__)
+#endif
+
+#endif /* __MCUBOOT_LOGGING_H__ */
