public
Rubygem
Description: Merb Core: All you need. None you don't.
Homepage: http://www.merbivore.com
Clone URL: git://github.com/wycats/merb-core.git
update the logger. no longer accept an optional block to call.

added bang! versions of all the debug,info,warn log levels that flushes
the log buffer immediately.

adapt the code base to use the bnag! version for bootloader log messages

default log level in production mode is now :warn
ezmobius (author)
Thu Mar 06 00:04:49 -0800 2008
commit  d4e533e96774982ff117c82bc209e1245be64a49
tree    5891218bee97d71d9e81f40d0cc30ad02281350a
parent  a90df4f413db9c6377f776b32da67e3b83131880
...
31
32
33
34
 
35
36
37
...
382
383
384
 
 
 
 
385
386
387
388
389
390
391
 
392
393
394
395
396
 
397
398
399
...
401
402
403
404
 
405
406
407
 
 
408
409
410
411
412
 
413
414
415
...
427
428
429
430
 
431
432
433
...
31
32
33
 
34
35
36
37
...
382
383
384
385
386
387
388
389
390
391
392
 
 
 
393
394
395
396
397
 
398
399
400
401
...
403
404
405
 
406
407
 
 
408
409
410
411
412
413
 
414
415
416
417
...
429
430
431
 
432
433
434
435
0
@@ -31,7 +31,7 @@ module Merb
0
         subklasses = subclasses.dup
0
         until subclasses.empty?
0
           bootloader = subclasses.shift
0
- puts "Loading: #{bootloader}" if ENV['DEBUG']
0
+ Merb.logger.debug!("Loading: #{bootloader}")if ENV['DEBUG']
0
           Object.full_const_get(bootloader).run
0
         end
0
         subclasses = subklasses
0
@@ -382,18 +382,20 @@ class Merb::BootLoader::MixinSessionContainer < Merb::BootLoader
0
       Merb.framework_root / "merb-core" / "dispatch" / "session" / "memory",
0
       "Using in-memory sessions; sessions will be lost whenever the server stops.")
0
 
0
+ Merb.register_session_type('memcache',
0
+ Merb.framework_root / "merb-core" / "dispatch" / "session" / "memcached",
0
+ "Using 'memcached' sessions")
0
+
0
     Merb.register_session_type('cookie', # Last session type becomes the default
0
       Merb.framework_root / "merb-core" / "dispatch" / "session" / "cookie",
0
       "Using 'share-nothing' cookie sessions (4kb limit per client)")
0
 
0
- Merb.register_session_type('memcache', # Last session type becomes the default
0
- Merb.framework_root / "merb-core" / "dispatch" / "session" / "memcached",
0
- "Using 'memcached' sessions")
0
+
0
         
0
     Merb::Controller.class_eval do
0
       session_store = Merb::Config[:session_store].to_s
0
       if ["", "false", "none"].include?(session_store)
0
- Merb.logger.info "Not Using Sessions"
0
+ Merb.logger.warn "Not Using Sessions"
0
       elsif reg = Merb.registered_session_types[session_store]
0
         if session_store == "cookie"
0
           Merb::BootLoader::MixinSessionContainer.check_for_secret_key
0
@@ -401,15 +403,15 @@ class Merb::BootLoader::MixinSessionContainer < Merb::BootLoader
0
         end
0
         require reg[:file]
0
         include ::Merb::SessionMixin
0
- Merb.logger.info reg[:description]
0
+ Merb.logger.warn reg[:description]
0
       else
0
- Merb.logger.info "Session store not found, '#{Merb::Config[:session_store]}'."
0
- Merb.logger.info "Defaulting to CookieStore Sessions"
0
+ Merb.logger.warn "Session store not found, '#{Merb::Config[:session_store]}'."
0
+ Merb.logger.warn "Defaulting to CookieStore Sessions"
0
         Merb::BootLoader::MixinSessionContainer.check_for_secret_key
0
         Merb::BootLoader::MixinSessionContainer.check_for_session_id_key
0
         require Merb.registered_session_types['cookie'][:file]
0
         include ::Merb::SessionMixin
0
- Merb.logger.info "(plugin not installed?)"
0
+ Merb.logger.warn "(plugin not installed?)"
0
       end
0
     end
0
         
0
@@ -427,7 +429,7 @@ class Merb::BootLoader::MixinSessionContainer < Merb::BootLoader
0
   # does not exist or is shorter than 16 charaters.
0
   def self.check_for_secret_key
0
     unless Merb::Config[:session_secret_key] && (Merb::Config[:session_secret_key].length >= 16)
0
- Merb.logger.info("You must specify a session_secret_key in your merb.yml, and it must be at least 16 characters\nbailing out...")
0
+ Merb.logger.warn("You must specify a session_secret_key in your merb.yml, and it must be at least 16 characters\nbailing out...")
0
       exit!
0
     end
0
     Merb::Controller._session_secret_key = Merb::Config[:session_secret_key]
...
25
26
27
28
 
29
30
31
32
33
34
35
 
36
37
38
...
292
293
294
295
 
296
297
298
...
25
26
27
 
28
29
30
31
32
33
34
 
35
36
37
38
...
292
293
294
 
295
296
297
298
0
@@ -25,14 +25,14 @@ module Kernel
0
         else
0
           gem(name, *ver) if ver
0
           require name
0
- Merb.logger.info("loading gem '#{name}' from #{__app_file_trace__.first} ...")
0
+ Merb.logger.info!("loading gem '#{name}' from #{__app_file_trace__.first} ...")
0
         end
0
       rescue LoadError
0
         if try_framework
0
           try_framework = false
0
           retry
0
         else
0
- Merb.logger.info("loading gem '#{name}' from #{__app_file_trace__.first} ...")
0
+ Merb.logger.info!("loading gem '#{name}' from #{__app_file_trace__.first} ...")
0
           # Failed requiring as a gem, let's try loading with a normal require.
0
           require name
0
         end
0
@@ -292,7 +292,7 @@ module Kernel
0
     # Define debugger method so that code even works if debugger was not
0
     # requested. Drops a note to the logs that Debugger was not available.
0
     def debugger
0
- Merb.logger.info "\n***** Debugger requested, but was not " +
0
+ Merb.logger.info! "\n***** Debugger requested, but was not " +
0
                         "available: Start server with --debugger " +
0
                         "to enable *****\n"
0
     end
...
11
12
13
14
15
16
17
...
19
20
21
22
23
24
25
...
11
12
13
 
14
15
16
...
18
19
20
 
21
22
23
0
@@ -11,7 +11,6 @@ module Merb
0
     # ==== Parameters
0
     # base<Class>:: The class to which the SessionMixin is mixed into.
0
     def setup_session
0
- Merb.logger.info("Setting Up Cookie Store Sessions")
0
       request.session = Merb::CookieSession.new(cookies[_session_id_key], _session_secret_key)
0
       @original_session = request.session.read_cookie
0
     end
0
@@ -19,7 +18,6 @@ module Merb
0
     # Finalizes the session by storing the session in a cookie, if the session
0
     # has changed.
0
     def finalize_session
0
- Merb.logger.info("Finalize Cookie Store Session")
0
       new_session = request.session.read_cookie
0
       
0
       if @original_session != new_session
...
8
9
10
11
12
13
14
...
17
18
19
20
21
22
23
...
8
9
10
 
11
12
13
...
16
17
18
 
19
20
21
0
@@ -8,7 +8,6 @@ module Merb
0
     # ==== Parameters
0
     # base<Class>:: The class to which the SessionMixin is mixed into.
0
     def setup_session
0
- Merb.logger.info("Setting up session")
0
       before = cookies[_session_id_key]
0
       request.session , cookies[_session_id_key] = Merb::MemorySession.persist(cookies[_session_id_key])
0
       @_new_cookie = cookies[_session_id_key] != before
0
@@ -17,7 +16,6 @@ module Merb
0
     # Finalizes the session by storing the session ID in a cookie, if the
0
     # session has changed.
0
     def finalize_session
0
- Merb.logger.info("Finalize session")
0
       set_cookie(_session_id_key, request.session.session_id, Time.now + _session_expiry) if (@_new_cookie || request.session.needs_new_cookie)
0
     end
0
 
...
14
15
16
 
 
 
 
 
 
 
17
18
19
...
130
131
132
133
 
134
135
136
...
168
169
170
171
172
173
174
175
176
177
...
185
186
187
188
189
 
190
191
192
193
194
195
196
197
198
 
 
 
 
199
200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
202
203
...
14
15
16
17
18
19
20
21
22
23
24
25
26
...
137
138
139
 
140
141
142
143
...
175
176
177
 
 
 
 
178
179
180
...
188
189
190
 
 
191
192
193
194
 
195
196
 
 
 
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
0
@@ -14,6 +14,13 @@ require "time" # httpdate
0
 # Merb.logger.info(message<String>,&block)
0
 # Merb.logger.debug(message<String>,&block)
0
 #
0
+# Logging with autoflush:
0
+# Merb.logger.fatal!(message<String>,&block)
0
+# Merb.logger.error!(message<String>,&block)
0
+# Merb.logger.warn!(message<String>,&block)
0
+# Merb.logger.info!(message<String>,&block)
0
+# Merb.logger.debug!(message<String>,&block)
0
+#
0
 # Flush the buffer to
0
 # Merb.logger.flush
0
 #
0
@@ -130,7 +137,7 @@ module Merb
0
       if log_level && Levels[log_level.to_sym]
0
         @level = Levels[log_level.to_sym]
0
       elsif Merb.environment == "production"
0
- @level = Levels[:error]
0
+ @level = Levels[:warn]
0
       else
0
         @level = Levels[:debug]
0
       end
0
@@ -168,10 +175,6 @@ module Merb
0
       message = ""
0
       message << delimiter
0
       message << string if string
0
- if block_given?
0
- message << delimiter
0
- message << yield
0
- end
0
       message << "\n" unless message[-1] == ?\n
0
       @buffer << message
0
       flush if @auto_flush
0
@@ -185,19 +188,33 @@ module Merb
0
       class_eval <<-LEVELMETHODS, __FILE__, __LINE__
0
 
0
       # Appends a message to the log if the log level is at least as high as
0
- # the log level of the logger. The methods yield to an optional block and
0
- # the output of this block will be appended to the message.
0
+ # the log level of the logger.
0
       #
0
       # ==== Parameters
0
       # string<String>:: The message to be logged. Defaults to nil.
0
- # &block:: The output of this block is added to the message.
0
       #
0
       # ==== Returns
0
- # String:: The resulting message added to the log file.
0
- def #{name}(message = nil, &block)
0
- self.<<(message, &block) if #{number} >= level
0
+ # self:: The logger object for chaining.
0
+ def #{name}(message = nil)
0
+ self << message if #{number} >= level
0
+ self
0
       end
0
 
0
+ # Appends a message to the log if the log level is at least as high as
0
+ # the log level of the logger. The bang! version of the method also auto
0
+ # flushes the log buffer to disk.
0
+ #
0
+ # ==== Parameters
0
+ # string<String>:: The message to be logged. Defaults to nil.
0
+ #
0
+ # ==== Returns
0
+ # self:: The logger object for chaining.
0
+ def #{name}!(message = nil)
0
+ self << message if #{number} >= level
0
+ flush
0
+ self
0
+ end
0
+
0
       # ==== Returns
0
       # Boolean:: True if this level will be logged by this logger.
0
       def #{name}?
...
14
15
16
17
18
 
19
20
21
...
14
15
16
 
 
17
18
19
20
0
@@ -14,8 +14,7 @@ module Merb
0
       # :port<Fixnum>:: The port Thin should bind to.
0
       # :app<String>>:: The application name.
0
       def self.start(opts={})
0
- Merb.logger.info("Using Ebb adapter")
0
- Merb.logger.flush
0
+ Merb.logger.warn!("Using Ebb adapter")
0
         server = ::Ebb::Server.new(opts[:app], opts)
0
         server.start
0
       end
...
14
15
16
17
18
 
19
20
21
...
14
15
16
 
 
17
18
19
20
0
@@ -14,8 +14,7 @@ module Merb
0
       # :port<Fixnum>:: The port Mongrel should bind to.
0
       # :app<String>>:: The application name.
0
       def self.start(opts={})
0
- Merb.logger.info("Using EventedMongrel adapter: #{opts.inspect}")
0
- Merb.logger.flush
0
+ Merb.logger.warn!("Using EventedMongrel adapter")
0
         server = ::Mongrel::HttpServer.new(opts[:host], opts[:port].to_i)
0
         server.register('/', ::Merb::Rack::Handler::Mongrel.new(opts[:app]))
0
         server.run.join
...
8
9
10
11
12
 
13
14
15
...
8
9
10
 
 
11
12
13
14
0
@@ -8,8 +8,7 @@ module Merb
0
       # ==== Options (opts)
0
       # :app<String>>:: The application name.
0
       def self.start(opts={})
0
- Merb.logger.info("Using FastCGI adapter")
0
- Merb.logger.flush
0
+ Merb.logger.warn!("Using FastCGI adapter")
0
         Rack::Handler::FastCGI.run(opts[:app])
0
       end
0
     end
...
15
16
17
18
19
 
20
21
22
...
15
16
17
 
 
18
19
20
21
0
@@ -15,8 +15,7 @@ module Merb
0
       # :port<Fixnum>:: The port Mongrel should bind to.
0
       # :app<String>>:: The application name.
0
       def self.start(opts={})
0
- Merb.logger.info("Using Mongrel adapter")
0
- Merb.logger.flush
0
+ Merb.logger.warn!("Using Mongrel adapter")
0
         server = ::Mongrel::HttpServer.new(opts[:host], opts[:port].to_i)
0
         server.register('/', ::Merb::Rack::Handler::Mongrel.new(opts[:app]))
0
         server.run.join
...
14
15
16
17
18
 
19
20
21
...
14
15
16
 
 
17
18
19
20
0
@@ -14,8 +14,7 @@ module Merb
0
       # :port<Fixnum>:: The port Thin should bind to.
0
       # :app<String>>:: The application name.
0
       def self.start(opts={})
0
- Merb.logger.info("Using Thin adapter")
0
- Merb.logger.flush
0
+ Merb.logger.warn!("Using Thin adapter")
0
         if opts[:host].include?('/')
0
           opts[:host] = "#{opts[:host]}-#{opts[:port]}"
0
         end
...
14
15
16
17
18
 
19
20
21
...
14
15
16
 
 
17
18
19
20
0
@@ -14,8 +14,7 @@ module Merb
0
       # :port<Fixnum>:: The port WEBrick should bind to.
0
       # :app<String>>:: The application name.
0
       def self.start(opts={})
0
- Merb.logger.info("Using Webrick adapter")
0
- Merb.logger.flush
0
+ Merb.logger.warn!("Using Webrick adapter")
0
       
0
         options = {
0
           :Port => opts[:port],
...
50
51
52
53
 
54
55
56
...
50
51
52
 
53
54
55
56
0
@@ -50,7 +50,7 @@ module Merb
0
       # ==== Returns
0
       # Boolean:: True if file exists under the server root and is readable.
0
       def file_exist?(path)
0
- full_path = ::File.join(@static_server.root, ::Rack::Utils.unescape(path))
0
+ full_path = ::File.join(@static_server.root, ::Merb::Request.unescape(path))
0
         ::File.file?(full_path) && ::File.readable?(full_path)
0
       end
0
 
...
163
164
165
166
 
167
168
169
...
163
164
165
 
166
167
168
169
0
@@ -163,7 +163,7 @@ module Merb
0
       # ==== Alternatives
0
       # If group is left out, the user will be used as the group.
0
       def change_privilege(user, group=user)
0
- Merb.logger.info "Changing privileges to #{user}:#{group}"
0
+ Merb.logger.warn! "Changing privileges to #{user}:#{group}"
0
         
0
         uid, gid = Process.euid, Process.egid
0
         target_uid = Etc.getpwnam(user).uid
...
52
53
54
55
 
56
57
58
...
52
53
54
 
55
56
57
58
0
@@ -52,7 +52,7 @@ describe "Kernel misc." do
0
   end
0
   
0
   it "should throw a useful error if there's no debugger" do
0
- Merb.logger.should_receive(:info).with "\n***** Debugger requested, but was not " +
0
+ Merb.logger.should_receive(:info!).with "\n***** Debugger requested, but was not " +
0
                         "available: Start server with --debugger " +
0
                         "to enable *****\n"
0
     Kernel.debugger
...
47
48
49
50
 
51
52
53
...
47
48
49
 
50
51
52
53
0
@@ -47,7 +47,7 @@ describe Merb::Logger do
0
     it "should set the log level to :error (6) when Merb.environment is production" do
0
       Merb.should_receive(:environment).twice.and_return("production")
0
       @logger.set_log(Merb.log_path / "production.log")
0
- @logger.level.should eql(6)
0
+ @logger.level.should eql(4)
0
     end
0
     
0
     it "should initialize the buffer to an empty array" do

Comments

    No one has commented yet.