Compare commits
6 Commits
Author | SHA1 | Date |
---|---|---|
Denis Knauf | d1694702b8 | |
Denis Knauf | 6d2157caff | |
Denis Knauf | 25ff6d52d8 | |
Denis Knauf | 595f4ac6f1 | |
Denis Knauf | 8edb8ccdea | |
Denis Knauf | 26853e31e2 |
2
Rakefile
2
Rakefile
|
@ -43,7 +43,7 @@ end
|
|||
|
||||
#task :default => :test
|
||||
|
||||
require 'rake/rdoctask'
|
||||
require 'rdoc/task'
|
||||
Rake::RDocTask.new do |rdoc|
|
||||
if File.exist? 'VERSION'
|
||||
version = File.read 'VERSION'
|
||||
|
|
|
@ -64,12 +64,18 @@ class Semlogger < ::Logger
|
|||
end
|
||||
|
||||
attr_accessor :logdev, :level, :progname
|
||||
|
||||
# some libs use #log_level
|
||||
def log_level=( level) @level = level end
|
||||
def log_level() @level end
|
||||
|
||||
class <<self
|
||||
attr_accessor :progname, :logger
|
||||
|
||||
def new_rails_logger config
|
||||
def new_rails_logger config, logdev = nil
|
||||
require 'semlogger/rack'
|
||||
logdev = ::Rails.root.join( 'log', "#{::Rails.env.to_s.gsub('%', '%%')}.%Y-%m-%d.%$.log").to_s
|
||||
logdev ||= ::Rails.root.join 'log', "#{::Rails.env.to_s.gsub('%', '%%')}.%Y-%m-%d.%$.log"
|
||||
logdev = logdev.to_s
|
||||
logger = nil
|
||||
if Rails.env.production?
|
||||
logger = new logdev
|
||||
|
@ -101,18 +107,17 @@ class Semlogger < ::Logger
|
|||
end
|
||||
|
||||
def tagged *tags, &e
|
||||
@tags += tags
|
||||
@tags += tags.flatten.compact
|
||||
tags = tags.size
|
||||
yield
|
||||
ensure
|
||||
tags.times { @tags.pop }
|
||||
#tags.times { @tags.pop }
|
||||
@tags.slice! -tags .. -1
|
||||
end
|
||||
|
||||
def add severity, message = nil, progname = nil, &block
|
||||
severity ||= UNKNOWN
|
||||
if @logdev.nil? or severity < @level
|
||||
return true
|
||||
end
|
||||
return true if @logdev.nil? or severity < @level
|
||||
progname ||= @progname
|
||||
if message.nil?
|
||||
if block_given?
|
||||
|
|
|
@ -1,29 +1,43 @@
|
|||
class Semlogger::Rack < Rails::Rack::Logger
|
||||
def initialize app, tags = nil, data = nil
|
||||
super app, tags
|
||||
@data = data
|
||||
@data = data || {}
|
||||
end
|
||||
|
||||
def call_app env
|
||||
request = ActionDispatch::Request.new env
|
||||
def call_app request, env
|
||||
path = request.filtered_path
|
||||
Rails.logger.info Semlogger.custom :connection, request.ip, Thread.current.object_id, request.request_method, path
|
||||
Rails.logger.custom( :connection, request.ip, Thread.current.object_id, request.request_method, path).info
|
||||
@app.call env
|
||||
ensure
|
||||
ActiveSupport::LogSubscriber.flush_all!
|
||||
end
|
||||
|
||||
def call env
|
||||
if @data
|
||||
Rails.logger.data( compute_data( env)) { super env }
|
||||
else
|
||||
super env
|
||||
request = ActionDispatch::Request.new env
|
||||
compute_tagged_ request do
|
||||
compute_data_ request do
|
||||
call_app request, env
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def compute_data env
|
||||
request = ActionDispatch::Request.new env
|
||||
def compute_tagged_ request
|
||||
if Rails.logger.respond_to? :tagged
|
||||
Rails.logger.tagged( compute_tags( request)) { yield }
|
||||
else
|
||||
yield
|
||||
end
|
||||
end
|
||||
|
||||
def compute_data_ request
|
||||
if Rails.logger.respond_to? :data
|
||||
Rails.logger.data( compute_data( request)) { yield }
|
||||
else
|
||||
yield
|
||||
end
|
||||
end
|
||||
|
||||
def compute_data request
|
||||
data = @data.dup
|
||||
data.each do |k, v|
|
||||
case v
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
|
||||
Gem::Specification.new do |s|
|
||||
s.name = %q{semlogger}
|
||||
s.version = "0.0.8"
|
||||
s.name = "semlogger"
|
||||
s.version = "0.0.10"
|
||||
|
||||
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
||||
s.authors = ["Denis Knauf"]
|
||||
s.date = %q{2012-10-19}
|
||||
s.description = %q{(Semi-)Structured Logger for Ruby (and Rails)}
|
||||
s.date = "2012-11-21"
|
||||
s.description = "(Semi-)Structured Logger for Ruby (and Rails)"
|
||||
s.email = ["Denis.Knauf@gmail.com"]
|
||||
s.extra_rdoc_files = [
|
||||
"LICENSE",
|
||||
|
@ -30,13 +30,12 @@ Gem::Specification.new do |s|
|
|||
"lib/semlogger/tailer.rb",
|
||||
"lib/semlogger/writer.rb"
|
||||
]
|
||||
s.homepage = %q{http://github.com/DenisKnauf/semlogger}
|
||||
s.homepage = "http://github.com/DenisKnauf/semlogger"
|
||||
s.require_paths = ["lib"]
|
||||
s.rubygems_version = %q{1.3.7}
|
||||
s.summary = %q{(Semi-)Structured Logger}
|
||||
s.rubygems_version = "1.8.23"
|
||||
s.summary = "(Semi-)Structured Logger"
|
||||
|
||||
if s.respond_to? :specification_version then
|
||||
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
||||
s.specification_version = 3
|
||||
|
||||
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
||||
|
|
Loading…
Reference in New Issue