class Log4r::MDC

See log4r/MDC.rb

Public Class Methods

check_thread_instance() click to toggle source
# File lib/log4r/MDC.rb, line 19
def self.check_thread_instance()
  # need to interlock here, so that if
  # another thread is entering this section
  # of code before the main thread does,
  # then the main thread copy of the MDC
  # is setup before then attempting to clone
  # it off
  if ( Thread.current[MDCNAME] == nil ) then
    $globalMDCLock.synchronize do 
      if ( Thread.main[MDCNAME] == nil ) then
        Thread.main[MDCNAME] = Hash.new
      end
      if ( Thread.current != Thread.main ) then
        Thread.current[MDCNAME] = Hash.new
        Thread.main[MDCNAME].each{ |k,v| Thread.current[MDCNAME][k] = v }
      end
    end
  end
end
get( a_key ) click to toggle source
# File lib/log4r/MDC.rb, line 39
def self.get( a_key )
  self.check_thread_instance()
  Thread.current[MDCNAME].fetch(a_key, "");
end
get_context() click to toggle source
# File lib/log4r/MDC.rb, line 44
def self.get_context()
  self.check_thread_instance()
  return Thread.current[MDCNAME].clone
end
put( a_key, a_value ) click to toggle source
# File lib/log4r/MDC.rb, line 49
def self.put( a_key, a_value )
  self.check_thread_instance()
  Thread.current[MDCNAME][a_key] = a_value
end
remove( a_key ) click to toggle source
# File lib/log4r/MDC.rb, line 54
def self.remove( a_key )
  self.check_thread_instance()
  Thread.current[MDCNAME].delete( a_key )
end