Class: Fluent::SystemConfig
  
  
  
  
  
    - Inherits:
- 
      Object
      
        
          - Object
- Fluent::SystemConfig
 show all
      - Includes:
- Configurable
    - Defined in:
- lib/fluent/system_config.rb
 
Defined Under Namespace
  
    
      Modules: Mixin
    
  
    
  
  
    
      Constant Summary
      collapse
    
    
      
        - SYSTEM_CONFIG_PARAMETERS =
          
        
- [
  :workers, :root_dir, :log_level,
  :suppress_repeated_stacktrace, :emit_error_log_interval, :suppress_config_dump,
  :log_event_verbose,
  :without_source, :rpc_endpoint, :enable_get_dump, :process_name,
  :file_permission, :dir_permission,
] 
Configurable::CONFIG_TYPE_REGISTRY
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  
  #config, #configure_proxy_generate, #configured_section_create, included, lookup_type, register_type
  Constructor Details
  
    
  
  
    #initialize(conf = nil)  ⇒ SystemConfig 
  
  
  
  
    
Returns a new instance of SystemConfig.
   
 
  
  
    | 
72
73
74
75
76 | # File 'lib/fluent/system_config.rb', line 72
def initialize(conf=nil)
  super()
  conf ||= SystemConfig.blank_system_config
  configure(conf)
end | 
 
  
 
  
    Class Method Details
    
      
  
  
    .blank_system_config  ⇒ Object 
  
  
  
  
    | 
58
59
60 | # File 'lib/fluent/system_config.rb', line 58
def self.blank_system_config
  Fluent::Config::Element.new('<SYSTEM>', '', {}, [])
end | 
 
    
      
  
  
    .create(conf)  ⇒ Object 
  
  
  
  
    | 
50
51
52
53
54
55
56 | # File 'lib/fluent/system_config.rb', line 50
def self.create(conf)
  systems = conf.elements(name: 'system')
  return SystemConfig.new if systems.empty?
  raise Fluent::ConfigError, "<system> is duplicated. <system> should be only one" if systems.size > 1
  SystemConfig.new(systems.first)
end | 
 
    
      
  
  
    .overwrite_system_config(hash)  ⇒ Object 
  
  
  
  
    | 
62
63
64
65
66
67
68
69
70 | # File 'lib/fluent/system_config.rb', line 62
def self.overwrite_system_config(hash)
  older = defined?($_system_config) ? $_system_config : nil
  begin
    $_system_config = SystemConfig.new(Fluent::Config::Element.new('system', '', hash, []))
    yield
  ensure
    $_system_config = older
  end
end | 
 
    
   
  
    Instance Method Details
    
      
  
  
    #apply(supervisor)  ⇒ Object 
  
  
  
  
    | 
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136 | # File 'lib/fluent/system_config.rb', line 119
def apply(supervisor)
  system = self
  supervisor.instance_eval {
    SYSTEM_CONFIG_PARAMETERS.each do |param|
      param_value = system.__send__(param)
      next if param_value.nil?
      case param
      when :log_level
        @log.level = @log_level = param_value
      when :emit_error_log_interval
        @suppress_interval = param_value
      else
        instance_variable_set("@#{param}", param_value)
      end
    end
  }
end | 
 
    
      
  
  
    #attach(supervisor)  ⇒ Object 
  
  
  
  
    | 
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 | # File 'lib/fluent/system_config.rb', line 92
def attach(supervisor)
  system = self
  supervisor.instance_eval {
    SYSTEM_CONFIG_PARAMETERS.each do |param|
      case param
      when :rpc_endpoint, :enable_get_dump, :process_name, :file_permission, :dir_permission
        next       when :emit_error_log_interval
        system.emit_error_log_interval = @suppress_interval if @suppress_interval
      when :log_level
        ll_value = instance_variable_get("@log_level")
                        if ll_value != Fluent::Log::LEVEL_INFO
          system.log_level = ll_value
        end
      else
        next unless instance_variable_defined?("@#{param}")
        supervisor_value = instance_variable_get("@#{param}")
        next if supervisor_value.nil? 
        system.send("#{param}=", supervisor_value)
      end
    end
  }
end | 
 
    
      
  
  
    | 
78
79
80
81
82 | # File 'lib/fluent/system_config.rb', line 78
def configure(conf)
  super
  @log_level = Log.str_to_level(@log_level.to_s) if @log_level
end | 
 
    
      
  
  
    #dup  ⇒ Object 
  
  
  
  
    | 
84
85
86
87
88
89
90 | # File 'lib/fluent/system_config.rb', line 84
def dup
  s = SystemConfig.new
  SYSTEM_CONFIG_PARAMETERS.each do |param|
    s.__send__("#{param}=", instance_variable_get("@#{param}"))
  end
  s
end |