diff --git a/src/main/java/com/ardublock/translator/block/operators/LogBlock.java b/src/main/java/com/ardublock/translator/block/operators/LogBlock.java
new file mode 100644
index 0000000000000000000000000000000000000000..960003cca0e6abb95dfe8e7022a7a0b6b0c082f2
--- /dev/null
+++ b/src/main/java/com/ardublock/translator/block/operators/LogBlock.java
@@ -0,0 +1,26 @@
+package com.ardublock.translator.block.operators;
+
+import com.ardublock.translator.Translator;
+import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.SocketNullException;
+import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
+
+public class LogBlock extends TranslatorBlock
+{
+
+	public LogBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
+	{
+		super(blockId, translator, codePrefix, codeSuffix, label);
+	}
+
+	@Override
+	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
+	{
+		String ret = "log( ";
+		TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
+		ret = ret + translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+		ret = ret + " )";
+		return codePrefix + ret + codeSuffix;
+	}
+	
+}
diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties
index fbf3c4b0147f2fd0937497d4a2bd22a8ed2d5f10..ca99fceb935884207a6ef29d2386c0d7bde9517e 100644
--- a/src/main/resources/com/ardublock/block/ardublock.properties
+++ b/src/main/resources/com/ardublock/block/ardublock.properties
@@ -508,6 +508,7 @@ bg.random=random
 bg.random_range=random
 bg.sin=sin
 bg.sqrt=sqrt
+bg.log=log
 bg.subtraction=-
 bg.tan=tan
 
@@ -520,6 +521,7 @@ bg.map_common.description=map value from [0, 1023] to [0, 255]
 bg.map.description=Map value from "from" range to "to" range
 bg.constrain.description=Constrain a number between two values
 bg.random_range.description=Generate random number between min and (max - 1)
+bg.log.description=Natural logarithm
 
 bc.max=max
 bc.min=min
diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml
index 116c230924ea866860d29240e2a2dd55f213da58..59f7d9de2e4a3e0daadafec8fab369de6d84da35 100644
--- a/src/main/resources/com/ardublock/block/ardublock.xml
+++ b/src/main/resources/com/ardublock/block/ardublock.xml
@@ -1358,6 +1358,12 @@
 				<BlockConnector connector-type="number" connector-kind="socket" />
 			</BlockConnectors>
 		</BlockGenus>
+		<BlockGenus name="log" kind="function" color="160 32 240" initlabel="bg.log">
+			<BlockConnectors>
+				<BlockConnector connector-type="number" connector-kind="plug" />
+				<BlockConnector connector-type="number" connector-kind="socket" />
+			</BlockConnectors>
+		</BlockGenus>
 		<BlockGenus name="sin" kind="function" color="160 32 240" initlabel="bg.sin">
 			<BlockConnectors>
 				<BlockConnector connector-type="number" connector-kind="plug" />
@@ -3111,6 +3117,7 @@
 				<BlockGenusMember>abs</BlockGenusMember>
 				<BlockGenusMember>pow</BlockGenusMember>
 				<BlockGenusMember>sqrt</BlockGenusMember>
+				<BlockGenusMember>log</BlockGenusMember>
 				
 				<BlockGenusMember>sin</BlockGenusMember>
 				<BlockGenusMember>cos</BlockGenusMember>
diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties
index 9f1fcaeee13bc6d662e3a1dbdf7be4350a2ed203..9fab4dfd01a87277d7ad3a76597b327cac358ff9 100644
--- a/src/main/resources/com/ardublock/block/ardublock_de.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_de.properties
@@ -505,6 +505,7 @@ bg.random=Zufallszahl
 bg.random_range=Zufallszahl
 bg.sin=sin
 bg.sqrt=Wurzel
+bg.log=log
 bg.subtraction=-
 bg.tan=tan
 
@@ -517,6 +518,7 @@ bg.map_common.description=Ordne die Werte von [0, 1023] zu den Werten von [0, 25
 bg.map.description=Ordne Werte vom Bereich "von" zum Bereich "zu"
 bg.constrain.description=Beschränke eine analoge Zahl auf einen Bereich
 bg.random_range.description=Erzeuge Zufallszahl zwischen "min" und "max-1"
+bg.log.description=Natuerlicher Logarithmus
 
 bc.max=max
 bc.min=min
diff --git a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
index 2c309be9f978cd403b3aa690062b70dec0c762fa..b960082f81b34042abf930aea08a08b90e0e6e2d 100644
--- a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
@@ -506,6 +506,7 @@ bg.random=random
 bg.random_range=random
 bg.sin=sin
 bg.sqrt=sqrt
+bg.log=log
 bg.subtraction=-
 bg.tan=tan
 
@@ -518,6 +519,7 @@ bg.map_common.description=Ordne die Werte von [0, 1023] zu den Werten von [0, 25
 bg.map.description=Ordne Werte vom Bereich "von" zum Bereich "zu"
 bg.constrain.description=Beschränke eine analoge Zahl auf einen Bereich
 bg.random_range.description=Erzeuge Zufallszahl zwischen "min" und "max-1"
+bg.log.description=Natuerlicher Logarithmus
 
 bc.max=max
 bc.min=min
diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties
index 700f60fed05b2ed6669cfdfb27defdc963402d47..0036c25d10427ebd40f3adb5680ba32bc3a438f5 100644
--- a/src/main/resources/com/ardublock/block/block-mapping.properties
+++ b/src/main/resources/com/ardublock/block/block-mapping.properties
@@ -157,6 +157,7 @@ max=com.ardublock.translator.block.operators.MaxBlock
 abs=com.ardublock.translator.block.operators.AbsBlock
 pow=com.ardublock.translator.block.operators.PowBlock
 sqrt=com.ardublock.translator.block.operators.SqrtBlock
+log=com.ardublock.translator.block.operators.LogBlock
 sin=com.ardublock.translator.block.operators.SinBlock
 cos=com.ardublock.translator.block.operators.CosBlock
 tan=com.ardublock.translator.block.operators.TanBlock