Compare commits

...

6 commits

Author SHA1 Message Date
Denis Knauf
d1694702b8 Regenerate gemspec for version 0.0.10 2012-11-21 16:11:47 +01:00
Denis Knauf
6d2157caff #new_rails_logger: custom logdev-template. Semlogger::Rack: #call will never super anymore. 2012-11-21 16:11:34 +01:00
Denis Knauf
25ff6d52d8 Regenerate gemspec for version 0.0.9 2012-11-19 17:33:37 +01:00
Denis Knauf
595f4ac6f1 rdoc-deprecation fixed 2012-11-19 17:33:17 +01:00
Denis Knauf
8edb8ccdea v0.0.9 2012-11-19 17:08:00 +01:00
Denis Knauf
26853e31e2 #log_level added, rack-logger 3.2.9 -compatible 2012-11-19 17:07:39 +01:00
5 changed files with 45 additions and 27 deletions

View file

@ -43,7 +43,7 @@ end
#task :default => :test #task :default => :test
require 'rake/rdoctask' require 'rdoc/task'
Rake::RDocTask.new do |rdoc| Rake::RDocTask.new do |rdoc|
if File.exist? 'VERSION' if File.exist? 'VERSION'
version = File.read 'VERSION' version = File.read 'VERSION'

View file

@ -1 +1 @@
0.0.8 0.0.10

View file

@ -64,12 +64,18 @@ class Semlogger < ::Logger
end end
attr_accessor :logdev, :level, :progname attr_accessor :logdev, :level, :progname
# some libs use #log_level
def log_level=( level) @level = level end
def log_level() @level end
class <<self class <<self
attr_accessor :progname, :logger attr_accessor :progname, :logger
def new_rails_logger config def new_rails_logger config, logdev = nil
require 'semlogger/rack' 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 logger = nil
if Rails.env.production? if Rails.env.production?
logger = new logdev logger = new logdev
@ -101,18 +107,17 @@ class Semlogger < ::Logger
end end
def tagged *tags, &e def tagged *tags, &e
@tags += tags @tags += tags.flatten.compact
tags = tags.size tags = tags.size
yield yield
ensure ensure
tags.times { @tags.pop } #tags.times { @tags.pop }
@tags.slice! -tags .. -1
end end
def add severity, message = nil, progname = nil, &block def add severity, message = nil, progname = nil, &block
severity ||= UNKNOWN severity ||= UNKNOWN
if @logdev.nil? or severity < @level return true if @logdev.nil? or severity < @level
return true
end
progname ||= @progname progname ||= @progname
if message.nil? if message.nil?
if block_given? if block_given?

View file

@ -1,29 +1,43 @@
class Semlogger::Rack < Rails::Rack::Logger class Semlogger::Rack < Rails::Rack::Logger
def initialize app, tags = nil, data = nil def initialize app, tags = nil, data = nil
super app, tags super app, tags
@data = data @data = data || {}
end end
def call_app env def call_app request, env
request = ActionDispatch::Request.new env
path = request.filtered_path 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 @app.call env
ensure ensure
ActiveSupport::LogSubscriber.flush_all! ActiveSupport::LogSubscriber.flush_all!
end end
def call env def call env
if @data request = ActionDispatch::Request.new env
Rails.logger.data( compute_data( env)) { super env } compute_tagged_ request do
else compute_data_ request do
super env call_app request, env
end
end end
end end
def compute_data env def compute_tagged_ request
request = ActionDispatch::Request.new env 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 = @data.dup
data.each do |k, v| data.each do |k, v|
case v case v

View file

@ -4,13 +4,13 @@
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = %q{semlogger} s.name = "semlogger"
s.version = "0.0.8" s.version = "0.0.10"
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Denis Knauf"] s.authors = ["Denis Knauf"]
s.date = %q{2012-10-19} s.date = "2012-11-21"
s.description = %q{(Semi-)Structured Logger for Ruby (and Rails)} s.description = "(Semi-)Structured Logger for Ruby (and Rails)"
s.email = ["Denis.Knauf@gmail.com"] s.email = ["Denis.Knauf@gmail.com"]
s.extra_rdoc_files = [ s.extra_rdoc_files = [
"LICENSE", "LICENSE",
@ -30,13 +30,12 @@ Gem::Specification.new do |s|
"lib/semlogger/tailer.rb", "lib/semlogger/tailer.rb",
"lib/semlogger/writer.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.require_paths = ["lib"]
s.rubygems_version = %q{1.3.7} s.rubygems_version = "1.8.23"
s.summary = %q{(Semi-)Structured Logger} s.summary = "(Semi-)Structured Logger"
if s.respond_to? :specification_version then if s.respond_to? :specification_version then
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
s.specification_version = 3 s.specification_version = 3
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then