File tree Expand file tree Collapse file tree 3 files changed +48
-13
lines changed Expand file tree Collapse file tree 3 files changed +48
-13
lines changed Original file line number Diff line number Diff line change @@ -3,21 +3,24 @@ module ForestLiana
33 class Logger
44 class << self
55 def log
6- logger = ::Logger . new ( STDOUT )
7- logger_colors = {
8- DEBUG : 34 ,
9- WARN : 33 ,
10- ERROR : 31 ,
11- INFO : 37
12- }
6+ if ForestLiana . logger != nil
7+ logger = ForestLiana . logger
8+ else
9+ logger = ::Logger . new ( STDOUT )
10+ logger_colors = {
11+ DEBUG : 34 ,
12+ WARN : 33 ,
13+ ERROR : 31 ,
14+ INFO : 37
15+ }
1316
14- logger . formatter = proc do |severity , datetime , progname , message |
15- displayed_message = "[#{ datetime . to_s ( :db ) } ] Forest 🌳🌳🌳 " \
16- "#{ message } \n "
17- "\e [#{ logger_colors [ severity . to_sym ] } m#{ displayed_message } \033 [0m"
17+ logger . formatter = proc do |severity , datetime , progname , message |
18+ displayed_message = "[#{ datetime . to_s ( :db ) } ] Forest 🌳🌳🌳 " \
19+ "#{ message } \n "
20+ "\e [#{ logger_colors [ severity . to_sym ] } m#{ displayed_message } \033 [0m"
21+ end
22+ logger
1823 end
19-
20- logger
2124 end
2225 end
2326 end
Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ module UserSpace
2727 mattr_accessor :user_class_name
2828 mattr_accessor :names_overriden
2929 mattr_accessor :meta
30+ mattr_accessor :logger
3031 # TODO: Remove once lianas prior to 2.0.0 are not supported anymore.
3132 mattr_accessor :names_old_overriden
3233
@@ -38,6 +39,7 @@ module UserSpace
3839 self . user_class_name = nil
3940 self . names_overriden = { }
4041 self . meta = { }
42+ self . logger = nil
4143
4244 @config_dir = 'lib/forest_liana/**/*.rb'
4345
Original file line number Diff line number Diff line change 1+ module ForestLiana
2+ describe Logger do
3+ describe 'self.log' do
4+ describe 'with a logger overload' do
5+ it 'should return the given logger' do
6+ logger = ActiveSupport ::Logger . new ( $stdout)
7+ logger . formatter = proc do |severity , datetime , progname , msg |
8+ { :message => msg } . to_json
9+ end
10+ ForestLiana . logger = logger
11+
12+ expect ( Logger . log . is_a? ( ActiveSupport ::Logger ) ) . to be_truthy
13+ expect { Logger . log . error "[error] override logger" } . to output ( { :message => "[error] override logger" } . to_json ) . to_stdout_from_any_process
14+ expect { Logger . log . info "[info] override logger" } . to output ( { :message => "[info] override logger" } . to_json ) . to_stdout_from_any_process
15+ end
16+ end
17+
18+ describe 'with no logger overload' do
19+ it 'should return an instance of ::Logger' do
20+ ForestLiana . logger = nil
21+
22+ expect ( Logger . log . is_a? ( ::Logger ) ) . to be_truthy
23+ # RegExp is used to check for the forestadmin logger format
24+ expect { Logger . log . error "[error] default logger" } . to output ( /\[ \d {4}-\d {2}-\d {2} \d {2}:\d {2}:\d {2}\] Forest .* \[ error\] / ) . to_stdout_from_any_process
25+ expect { Logger . log . info "[info] default logger" } . to output ( /\[ \d {4}-\d {2}-\d {2} \d {2}:\d {2}:\d {2}\] Forest .* \[ info\] / ) . to_stdout_from_any_process
26+ end
27+ end
28+ end
29+ end
30+ end
You can’t perform that action at this time.
0 commit comments