diff --git a/.travis.yml b/.travis.yml
index <HASH>..<HASH> 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,6 +4,7 @@ rvm:
   - 1.9.2
   - 1.9.3
   - 2.0.0
+  - 2.1.0
 services:
   - rabbitmq
   - redis
diff --git a/lib/sensu/sandbox.rb b/lib/sensu/sandbox.rb
index <HASH>..<HASH> 100644
--- a/lib/sensu/sandbox.rb
+++ b/lib/sensu/sandbox.rb
@@ -2,7 +2,7 @@ module Sensu
   module Sandbox
     def self.eval(expression, value=nil)
       result = Proc.new do
-        $SAFE = 4
+        $SAFE = (RUBY_VERSION >= '2.1.0' ? 3 : 4)
         Kernel.eval(expression)
       end
       result.call
diff --git a/lib/sensu/server.rb b/lib/sensu/server.rb
index <HASH>..<HASH> 100644
--- a/lib/sensu/server.rb
+++ b/lib/sensu/server.rb
@@ -148,7 +148,11 @@ module Sensu
           begin
             expression = hash_one[key].gsub(/^eval:(\s+)?/, '')
             !!Sandbox.eval(expression, hash_two[key])
-          rescue
+          rescue => error
+            @logger.error('filter eval error', {
+              :attributes => [hash_one, hash_two],
+              :error => error.to_s
+            })
             false
           end
         else
[ruby-<I>] test on ruby <I>, $SAFE level 4 was dropped