Log errors using Rails.logger

Akinori MUSHA 9 years ago
parent
commit
4ec50836c5
1 changed files with 16 additions and 2 deletions
  1. 16 2
      app/concerns/liquid_interpolatable.rb

+ 16 - 2
app/concerns/liquid_interpolatable.rb

@@ -158,13 +158,15 @@ module LiquidInterpolatable
158 158
               end
159 159
             end
160 160
           end
161
-        rescue
161
+        rescue URI::Error, Faraday::Error, SystemCallError => e
162
+          logger.error "#{e.class} in #{__method__}(#{url.inspect}) [uri=#{uri.to_s.inspect}]: #{e.message}:\n#{e.backtrace.join("\n")}"
162 163
         end
163 164
 
164 165
         return uri.to_s
165 166
       end
166 167
 
167
-      # too many redirections
168
+      logger.error "Too many rediretions in #{__method__}(#{url.inspect}) [uri=#{uri.to_s.inspect}]"
169
+
168 170
       url
169 171
     end
170 172
 
@@ -184,6 +186,18 @@ module LiquidInterpolatable
184 186
         'concat(' << subs.join(', ') << ')'
185 187
       end
186 188
     end
189
+
190
+    private
191
+
192
+    def logger
193
+      @@logger ||=
194
+        if defined?(Rails)
195
+          Rails.logger
196
+        else
197
+          require 'logger'
198
+          Logger.new(STDERR)
199
+        end
200
+    end
187 201
   end
188 202
   Liquid::Template.register_filter(LiquidInterpolatable::Filters)
189 203