# encoding: utf-8# Copyright (c) 2011-2013 Rudolf Schmidt## Permission is hereby granted, free of charge, to any person obtaining# a copy of this software and associated documentation files (the# "Software"), to deal in the Software without restriction, including# without limitation the rights to use, copy, modify, merge, publish,# distribute, sublicense, and/or sell copies of the Software, and to# permit persons to whom the Software is furnished to do so, subject to# the following conditions:## The above copyright notice and this permission notice shall be# included in all copies or substantial portions of the Software.# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.moduleYell#:nodoc:# Holds all Yell severitiesSeverities=['DEBUG','INFO','WARN','ERROR','FATAL','UNKNOWN'].freezeclass<<self# Creates a new logger instance.## Refer to #Yell::Loggger for usage.## @return [Yell::Logger] The logger instancedefnew(*args,&block)Yell::Logger.new(*args,&block)end# Shortcut to Yell::Level.new## @return [Yell::Level] The level instancedeflevel(val=nil)Yell::Level.new(val)end# Shortcut to Yell::Repository[]## @return [Yell::Logger] The logger instancedef[](name)Yell::Repository[name]end# Shortcut to Yell::Repository[]=## @return [Yell::Logger] The logger instancedef[]=(name,logger)Yell::Repository[name]=loggerend# Shortcut to Yell::Fomatter.new## @return [Yell::Formatter] A Yell::Formatter instancedefformat(pattern=nil,date_pattern=nil,&block)Yell::Formatter.new(pattern,date_pattern,&block)end# Loads a config from a YAML file## @return [Yell::Logger] The logger instancedefload!(file)Yell.newYell::Configuration.load!(file)end# Shortcut to Yell::Adapters.registerdefregister(name,klass)Yell::Adapters.register(name,klass)end# @privatedefenvreturnENV['YELL_ENV']ifENV.key?'YELL_ENV'returnENV['RACK_ENV']ifENV.key?'RACK_ENV'returnENV['RAILS_ENV']ifENV.key?'RAILS_ENV'ifdefined?(Rails)Rails.envelse'development'endend# @privatedef_deprecate(version,message,options={})messages=["Deprecation Warning (since v#{version}): #{message}"]messages<<" before: #{options[:before]}"ifoptions[:before]messages<<" after: #{options[:after]}"ifoptions[:after]_warn(*messages)end# @privatedef_warn(*messages)$stderr.puts"[Yell] "+messages.join("\n")rescueException=>e# do nothingendendend# helpersrequireFile.dirname(__FILE__)+'/yell/helpers/base'requireFile.dirname(__FILE__)+'/yell/helpers/adapter'requireFile.dirname(__FILE__)+'/yell/helpers/formatter'requireFile.dirname(__FILE__)+'/yell/helpers/level'requireFile.dirname(__FILE__)+'/yell/helpers/tracer'requireFile.dirname(__FILE__)+'/yell/helpers/silencer'# classesrequireFile.dirname(__FILE__)+'/yell/configuration'requireFile.dirname(__FILE__)+'/yell/repository'requireFile.dirname(__FILE__)+'/yell/event'requireFile.dirname(__FILE__)+'/yell/level'requireFile.dirname(__FILE__)+'/yell/formatter'requireFile.dirname(__FILE__)+'/yell/silencer'requireFile.dirname(__FILE__)+'/yell/adapters'requireFile.dirname(__FILE__)+'/yell/logger'# modulesrequireFile.dirname(__FILE__)+'/yell/loggable'# core extensionsrequireFile.dirname(__FILE__)+'/core_ext/logger'# register known adaptersYell.register:null,Yell::Adapters::Base# adapter that does nothing (for convenience only)Yell.register:file,Yell::Adapters::FileYell.register:datefile,Yell::Adapters::DatefileYell.register:stdout,Yell::Adapters::StdoutYell.register:stderr,Yell::Adapters::Stderr