Module: Log4j2LoggerBridge::Log4j2InitializationMethods

Included in:
Log4j2LoggerBridge
Defined in:
lib/log4j2_logger_bridge/log4j2_initialization_methods.rb

Overview

The Log4j2InitializationMethods module

Instance Method Summary collapse

Instance Method Details

#configure_log4jObject



36
37
38
39
# File 'lib/log4j2_logger_bridge/log4j2_initialization_methods.rb', line 36

def configure_log4j
  @log4j2_context = Configurator.initialize(log4j_configuration.build)
  @log4j2_context.updateLoggers
end

#derive_category(receiver, callsite) ⇒ Object

rubocop: enable Metrics/AbcSize rubocop: enable Metrics/MethodLength



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/log4j2_logger_bridge/log4j2_initialization_methods.rb', line 65

def derive_category(receiver, callsite)
  if receiver.is_a?(Module)
    receiver.name.to_s
  elsif receiver.respond_to?(:class) && receiver.class.respond_to?(:name)
    receiver.class.name.to_s
  else
    Log4j2LoggerBridge::Constants::EMPTY_STRING
  end.tap do |cat|
    return cat unless cat.empty?
  end

  File.basename(callsite.path.to_s)
end

#init_config(config = ConfigurationBuilderFactory.newConfigurationBuilder) ⇒ Object

rubocop: disable Metrics/AbcSize rubocop: disable Metrics/MethodLength



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/log4j2_logger_bridge/log4j2_initialization_methods.rb', line 47

def init_config(config = ConfigurationBuilderFactory.newConfigurationBuilder)
  @layout = config.newLayout('PatternLayout')
    .addAttribute('pattern', java_log_pattern)
  console = config.newAppender('stdout', 'CONSOLE')
    .addAttribute('target', ConsoleAppender::Target::SYSTEM_OUT).add(@layout)
  config.add(console)
  @root_logger = config.newRootLogger(Level::INFO)
    .add(config.newAppenderRef('stdout'))
  config.add(@root_logger)
  app_logger = config.newLogger(app_logger_name, Level::INFO)
    .add(config.newAppenderRef('stdout'))
    .addAttribute('additivity', false)
  config.add(app_logger)
  config
end

#init_log4j2!Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/log4j2_logger_bridge/log4j2_initialization_methods.rb', line 19

def init_log4j2!
  return if @log4j2_initialized

  Java::java.lang.System.setProperty(
    'log4j.shutdownHookEnabled', Java::java.lang.Boolean.toString(false))

  configure_log4j

  Log4j2LoggerBridge::Log4j2RollingFile.apply!(
    builder: @log4j_configuration,
    root_logger: @root_logger,
    layout: @layout
  )

  @log4j2_initialized = true
end

#init_log4j_backendObject



13
14
15
16
17
# File 'lib/log4j2_logger_bridge/log4j2_initialization_methods.rb', line 13

def init_log4j_backend
  init_log4j2!
  apply_backend_level(log_level)
  LogManager.getLogger(app_logger_name)
end

#log4j_configurationObject



41
42
43
# File 'lib/log4j2_logger_bridge/log4j2_initialization_methods.rb', line 41

def log4j_configuration
  @log4j_configuration ||= init_config
end