diff --git a/ethereumj-core/pom.xml b/ethereumj-core/pom.xml
index b00cb91a..ec658d75 100644
--- a/ethereumj-core/pom.xml
+++ b/ethereumj-core/pom.xml
@@ -131,6 +131,13 @@ mvn clean package -Dmaven.test.skip=true
log4j
1.2.17
+
+
+ log4j
+ apache-log4j-extras
+ 1.2.17
+
+
com.yuvalshavit
antlr-denter
diff --git a/ethereumj-core/src/main/resources/log4j.properties b/ethereumj-core/src/main/resources/log4j.properties
index c62767c3..a49c861a 100644
--- a/ethereumj-core/src/main/resources/log4j.properties
+++ b/ethereumj-core/src/main/resources/log4j.properties
@@ -1,5 +1,5 @@
# Root logger option
-log4j.rootLogger=DEBUG, stdout
+log4j.rootLogger=DEBUG, stdout, file
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
@@ -7,6 +7,12 @@ log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{HH:mm:ss} [%c{1}] %m%n
+log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern= %d{HH:mm:ss} [%c{1}] %m%n
+log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
+log4j.appender.file.RollingPolicy.FileNamePattern=./logs/ethereum_%d{yyyy-MM-dd}_h%d{HH}.log
+
# filter noisy classes
log4j.logger.org.ethereum.net = INFO
log4j.logger.peerdiscovery = FATAL
@@ -18,3 +24,6 @@ log4j.logger.VM = DEBUG
log4j.logger.main = INFO
log4j.logger.state = DEBUG
log4j.logger.blockchain = DEBUG
+log4j.logger.ui = DEBUG
+log4j.logger.gas = DEBUG
+