Class: Leafy::Logger::Factory

Inherits:
Object
  • Object
show all
Includes:
JRuby::Synchronized
Defined in:
lib/leafy/logger/factory.rb

Defined Under Namespace

Classes: HashSourceProvider

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(factory = nil) ⇒ Factory

Returns a new instance of Factory.



47
48
49
# File 'lib/leafy/logger/factory.rb', line 47

def initialize( factory = nil )
  @factory = factory || Java::IoDropwizardLogging::LoggingFactory.new
end

Class Method Details

.bootstrapObject



28
29
30
# File 'lib/leafy/logger/factory.rb', line 28

def self.bootstrap
  Java::IoDropwizardLogging::LoggingFactory.bootstrap
end

.configuratorObject



32
33
34
35
36
# File 'lib/leafy/logger/factory.rb', line 32

def self.configurator
  objectMapper = Java::IoDropwizardJackson::Jackson.newObjectMapper
  validator = javax.validation.Validation.buildDefaultValidatorFactory.validator
  Java::IoDropwizardConfiguration::ConfigurationFactory.new( Java::IoDropwizardLogging::LoggingFactory.java_class, validator, objectMapper, "" )
end

.get_logger(name) ⇒ Object



24
25
26
# File 'lib/leafy/logger/factory.rb', line 24

def self.get_logger( name )
  org.slf4j.LoggerFactory.get_logger name
end

.new_from_options(options) ⇒ Object



38
39
40
# File 'lib/leafy/logger/factory.rb', line 38

def self.new_from_options( options )
  new( configurator.build( HashSourceProvider.new( options ), 'dummy') )
end

.new_from_yaml(yamlfile) ⇒ Object



42
43
44
45
# File 'lib/leafy/logger/factory.rb', line 42

def self.new_from_yaml( yamlfile )
  raise "no such file #{yamlfile}" unless File.exists?( yamlfile )
  new( configurator.build( java.io.File.new( yamlfile ) ) )
end

Instance Method Details

#[]=(name, level) ⇒ Object



108
109
110
111
112
# File 'lib/leafy/logger/factory.rb', line 108

def []=( name, level )
  m = @factory.loggers.to_hash
  m[ name ] = level
  self.loggers = m
end

#appenders(*args) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/leafy/logger/factory.rb', line 87

def appenders( *args )
  if args.size > 0
    self.appenders = args
  else
    @factory.appenders.to_a
  end
end

#appenders=(args) ⇒ Object



95
96
97
98
# File 'lib/leafy/logger/factory.rb', line 95

def appenders= args
  @factory.appenders = args
  reconfigure
end

#configure(metrics, name) ⇒ Object



126
127
128
129
130
# File 'lib/leafy/logger/factory.rb', line 126

def configure( metrics, name )
  @metrics = metrics
  @name = name
  reconfigure
end

#level(args = nil) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/leafy/logger/factory.rb', line 67

def level args = nil
  if args
    self.level = args
  else
    @factory.level.to_s
  end
end

#level=(level) ⇒ Object



81
82
83
84
85
# File 'lib/leafy/logger/factory.rb', line 81

def level= level
  l = level.to_s.upcase
  @factory.level = Java::ChQosLogbackClassic::Level.const_get( l )
  reconfigure
end

#loggers(map = nil) ⇒ Object



100
101
102
103
104
105
106
# File 'lib/leafy/logger/factory.rb', line 100

def loggers( map = nil )
  if map
    self.loggers = map
  else
    Hash[ @factory.loggers.collect {|k,v| [k, v.to_s ] } ]
  end
end

#loggers=(map) ⇒ Object



121
122
123
124
# File 'lib/leafy/logger/factory.rb', line 121

def loggers= map
  loggers_set( map )
  reconfigure
end

#reconfigureObject



132
133
134
# File 'lib/leafy/logger/factory.rb', line 132

def reconfigure
  @factory.configure( @metrics.metrics, @name ) if @metrics
end

#reconfigure_from_options(options) ⇒ Object



51
52
53
# File 'lib/leafy/logger/factory.rb', line 51

def reconfigure_from_options( options )
  do_reconfigure( self.class.configurator.build( HashSourceProvider.new( options ), 'dummy') )
end

#reconfigure_from_yaml(yamlfile) ⇒ Object



55
56
57
58
# File 'lib/leafy/logger/factory.rb', line 55

def reconfigure_from_yaml( yamlfile )
  raise "no such file #{yamlfile}" unless File.exists?( yamlfile )
  do_reconfigure( self.class.configurator.build( java.io.File.new( yamlfile ) ) )
end

#stopObject



136
137
138
# File 'lib/leafy/logger/factory.rb', line 136

def stop
  @factory.stop
end