diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index 21fc14439d9d6ac5e44c31194c75aa1fe40bcbde..54b7f462957854c8bbcdc72ad37b18827800d1c5 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -19,10 +19,32 @@
 		<encoder>
 			<pattern>%d{HH:mm:ss.SSS} %highlight(%-5level) %logger{36} - %msg%n%ex{${arsnova.log.exceptions:-short}}</pattern>
 		</encoder>
+		<if condition='isDefined("arsnova.log.file")'>
+			<then>
+				<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+					<level>WARN</level>
+				</filter>
+			</then>
+		</if>
 	</appender>
+	<if condition='isDefined("arsnova.log.file")'>
+		<then>
+			<appender name="FILE" class="ch.qos.logback.core.FileAppender">
+				<encoder>
+					<pattern>%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %logger{36} - %msg%n%ex{${arsnova.log.exceptions:-short}}</pattern>
+				</encoder>
+				<file>${arsnova.log.file}</file>
+			</appender>
+		</then>
+	</if>
 
 	<root level="${arsnova.log.level.root:-INFO}">
 		<appender-ref ref="STDOUT" />
+		<if condition='isDefined("arsnova.log.file")'>
+			<then>
+				<appender-ref ref="FILE" />
+			</then>
+		</if>
 	</root>
 
 	<logger name="de.thm.arsnova" level="${arsnova.log.level}" />