Class: Padrino::Logger
- Inherits:
-
Object
- Object
- Padrino::Logger
- Includes:
- Extensions
- Defined in:
- lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb
Overview
Padrinos internal logger, using all of Padrino log extensions.
Defined Under Namespace
Modules: Colorize, Extensions Classes: Rack
Constant Summary collapse
- Levels =
Ruby (standard) logger levels:
- :fatal
-
An unhandleable error that results in a program crash
- :error
-
A handleable error condition
- :warn
-
A warning
- :info
-
generic (useful) information about system operation
- :debug
-
low-level information for developers
- :devel
-
Development-related information that is unnecessary in debug mode
{ :fatal => 7, :error => 6, :warn => 4, :info => 3, :debug => 0, :devel => -1, }
- Config =
Configuration for a given environment, possible options are:
- :log_level
-
Once of [:fatal, :error, :warn, :info, :debug]
- :stream
-
Once of [:to_file, :null, :stdout, :stderr] our your custom stream
- :log_level
-
The log level from, e.g. :fatal or :info. Defaults to :warn in the production environment and :debug otherwise.
- :auto_flush
-
Whether the log should automatically flush after new messages are added. Defaults to true.
- :format_datetime
-
Format of datetime. Defaults to: “%d/%b/%Y %H:%M:%S”
- :format_message
-
Format of message. Defaults to: “”%s - - [%s] "%s"“”
- :log_static
-
Whether or not to show log messages for static files. Defaults to: false
- :colorize_logging
-
Whether or not to colorize log messages. Defaults to: true
Defaults are:
:production => { :log_level => :warn, :stream => :to_file } :development => { :log_level => :debug, :stream => :stdout } :test => { :log_level => :fatal, :stream => :null }
In some cases, configuring the loggers before loading the framework is necessary. You can do so by setting PADRINO_LOGGER:
PADRINO_LOGGER = { :staging => { :log_level => :debug, :stream => :to_file }}
{ :production => { :log_level => :warn, :stream => :to_file }, :development => { :log_level => :debug, :stream => :stdout, :format_datetime => '' }, :test => { :log_level => :debug, :stream => :null } }
- @@mutex =
Mutex.new
Instance Attribute Summary collapse
-
#auto_flush ⇒ Object
Returns the value of attribute auto_flush.
-
#buffer ⇒ Object
readonly
Returns the value of attribute buffer.
-
#colorize_logging ⇒ Object
readonly
Returns the value of attribute colorize_logging.
-
#init_args ⇒ Object
readonly
Returns the value of attribute init_args.
-
#level ⇒ Object
Returns the value of attribute level.
-
#log ⇒ Object
readonly
Returns the value of attribute log.
-
#log_static ⇒ Object
Returns the value of attribute log_static.
Class Method Summary collapse
- .logger ⇒ Object
- .logger=(logger) ⇒ Object
-
.setup! ⇒ Padrino::Logger
Setup a new logger.
Instance Method Summary collapse
-
#<<(message = nil) ⇒ Object
(also: #write)
Directly append message to the log.
-
#add(level, message = nil) ⇒ Object
Adds a message to the log - for compatibility with other loggers.
-
#close ⇒ NilClass
Close and remove the current log object.
-
#flush ⇒ Object
Flush the entire buffer to the log object.
- #format(message, level) ⇒ Object
-
#initialize(options = {}) ⇒ Logger
constructor
To initialize the logger you create a new object, proxies to set_log.
Methods included from Extensions
#bench, #colorize, #colorize!, #name, #push, #stylized_level
Constructor Details
#initialize(options = {}) ⇒ Logger
To initialize the logger you create a new object, proxies to set_log.
327 328 329 330 331 332 333 334 335 336 337 338 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 327 def initialize(={}) @buffer = [] @auto_flush = .has_key?(:auto_flush) ? [:auto_flush] : true @level = [:log_level] ? Padrino::Logger::Levels[[:log_level]] : Padrino::Logger::Levels[:debug] @log = [:stream] || $stdout @log.sync = true @format_datetime = [:format_datetime] || "%d/%b/%Y %H:%M:%S" @format_message = [:format_message] || "%s - %s %s" @log_static = .has_key?(:log_static) ? [:log_static] : false @colorize_logging = .has_key?(:colorize_logging) ? [:colorize_logging] : true colorize! if @colorize_logging end |
Instance Attribute Details
#auto_flush ⇒ Object
Returns the value of attribute auto_flush.
211 212 213 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 211 def auto_flush @auto_flush end |
#buffer ⇒ Object (readonly)
Returns the value of attribute buffer.
212 213 214 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 212 def buffer @buffer end |
#colorize_logging ⇒ Object (readonly)
Returns the value of attribute colorize_logging.
216 217 218 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 216 def colorize_logging @colorize_logging end |
#init_args ⇒ Object (readonly)
Returns the value of attribute init_args.
214 215 216 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 214 def init_args @init_args end |
#level ⇒ Object
Returns the value of attribute level.
210 211 212 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 210 def level @level end |
#log ⇒ Object (readonly)
Returns the value of attribute log.
213 214 215 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 213 def log @log end |
#log_static ⇒ Object
Returns the value of attribute log_static.
215 216 217 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 215 def log_static @log_static end |
Class Method Details
.logger ⇒ Object
260 261 262 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 260 def self.logger @_logger || setup! end |
.logger=(logger) ⇒ Object
264 265 266 267 268 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 264 def self.logger=(logger) logger.extend(Padrino::Logger::Extensions) @_logger = logger end |
.setup! ⇒ Padrino::Logger
Setup a new logger
276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 276 def self.setup! self.logger = begin config_level = (PADRINO_LOG_LEVEL || Padrino.env || :test).to_sym # need this for PADRINO_LOG_LEVEL config = Config[config_level] unless config warn("No logging configuration for :#{config_level} found, falling back to :production") config = Config[:production] end stream = case config[:stream] when :to_file FileUtils.mkdir_p(Padrino.root('log')) unless File.exists?(Padrino.root('log')) File.new(Padrino.root('log', "#{Padrino.env}.log"), 'a+') when :null then StringIO.new when :stdout then $stdout when :stderr then $stderr else config[:stream] # return itself, probabilly is a custom stream. end Padrino::Logger.new(config.merge(:stream => stream)) end end |
Instance Method Details
#<<(message = nil) ⇒ Object Also known as: write
Directly append message to the log.
376 377 378 379 380 381 382 383 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 376 def <<( = nil) << "\n" unless [-1] == ?\n @@mutex.synchronize { @buffer << } flush if @auto_flush end |
#add(level, message = nil) ⇒ Object
Adds a message to the log - for compatibility with other loggers.
366 367 368 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 366 def add(level, = nil) write() end |
#close ⇒ NilClass
Close and remove the current log object.
356 357 358 359 360 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 356 def close flush @log.close if @log.respond_to?(:close) && !@log.tty? @log = nil end |
#flush ⇒ Object
Flush the entire buffer to the log object.
343 344 345 346 347 348 349 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 343 def flush return unless @buffer.size > 0 @@mutex.synchronize do @log.write(@buffer.join('')) @buffer.clear end end |
#format(message, level) ⇒ Object
386 387 388 |
# File 'lib/vendored-middleman-deps/padrino-core-0.11.2/lib/padrino-core/logger.rb', line 386 def format(, level) @format_message % [stylized_level(level), colorize(Time.now.strftime(@format_datetime), :yellow), .to_s.strip] end |