diff --git a/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF
index 9d87683..a5473bb 100644
--- a/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
-Bundle-Version: 3.16.100.qualifier
+Bundle-Version: 3.17.0.qualifier
 Bundle-SymbolicName: org.eclipse.core.runtime; singleton:=true
 Bundle-Vendor: %providerName
 Bundle-Activator: org.eclipse.core.internal.runtime.PlatformActivator
diff --git a/bundles/org.eclipse.core.runtime/pom.xml b/bundles/org.eclipse.core.runtime/pom.xml
index 299b5db..dc3f73b 100644
--- a/bundles/org.eclipse.core.runtime/pom.xml
+++ b/bundles/org.eclipse.core.runtime/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.core</groupId>
   <artifactId>org.eclipse.core.runtime</artifactId>
-  <version>3.16.100-SNAPSHOT</version>
+  <version>3.17.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   <build>
     <plugins>
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/ILog.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/ILog.java
index 4fe0fcb..5abb0f8 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/ILog.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/runtime/ILog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     Christoph Läubrich - add methods for logging without a IStatus object
  *******************************************************************************/
 package org.eclipse.core.runtime;
 
@@ -62,4 +63,73 @@
 	 * @see Platform#removeLogListener(ILogListener)
 	 */
 	public void removeLogListener(ILogListener listener);
+
+	/**
+	 * Logs a status with {@link IStatus#INFO} using this logger
+	 * {@link Bundle#getSymbolicName()} as pluginId
+	 *
+	 * @param message the message to log
+	 * @since 3.17
+	 */
+	default void info(String message) {
+		log(new Status(IStatus.INFO, getBundle().getSymbolicName(), message));
+	}
+
+	/**
+	 * Logs a status with {@link IStatus#INFO} using this logger
+	 * {@link Bundle#getSymbolicName()} as pluginId
+	 *
+	 * @param message   the message to log
+	 * @param throwable an optional throwable to associate with this status
+	 * @since 3.17
+	 */
+	default void info(String message, Throwable throwable) {
+		log(new Status(IStatus.INFO, getBundle().getSymbolicName(), message, throwable));
+	}
+
+	/**
+	 * Logs a status with {@link IStatus#WARNING} using this logger
+	 * {@link Bundle#getSymbolicName()} as pluginId
+	 *
+	 * @param message the message to log
+	 * @since 3.17
+	 */
+	default void warn(String message) {
+		log(new Status(IStatus.WARNING, getBundle().getSymbolicName(), message));
+	}
+
+	/**
+	 * Logs a status with {@link IStatus#WARNING} using this logger
+	 * {@link Bundle#getSymbolicName()} as pluginId
+	 *
+	 * @param message   the message to log
+	 * @param throwable an optional throwable to associate with this status
+	 * @since 3.17
+	 */
+	default void warn(String message, Throwable throwable) {
+		log(new Status(IStatus.WARNING, getBundle().getSymbolicName(), message, throwable));
+	}
+
+	/**
+	 * Logs a status with {@link IStatus#ERROR} using this logger
+	 * {@link Bundle#getSymbolicName()} as pluginId
+	 *
+	 * @param message the message to log
+	 * @since 3.17
+	 */
+	default void error(String message) {
+		log(new Status(IStatus.ERROR, getBundle().getSymbolicName(), message));
+	}
+
+	/**
+	 * Logs a status with {@link IStatus#ERROR} using this logger
+	 * {@link Bundle#getSymbolicName()} as pluginId
+	 *
+	 * @param message   the message to log
+	 * @param throwable an optional throwable to associate with this status
+	 * @since 3.17
+	 */
+	default void error(String message, Throwable throwable) {
+		log(new Status(IStatus.ERROR, getBundle().getSymbolicName(), message, throwable));
+	}
 }
