Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions lib/gooddata/bricks/middleware/logger_middleware.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,14 @@ def call(params)

unless params['NO_SPLUNK_LOGGING'] && params['NO_SPLUNK_LOGGING'].to_b
GoodData.logger.info "Statistics collecting is turned ON. All the data is anonymous."
# NODE_NAME is set up by k8s execmgr
syslog_node = ENV['NODE_NAME']
splunk_file_logger = syslog_node ? RemoteSyslogLogger.new(syslog_node, 514, program: "lcm_ruby_brick", facility: 'local2') : Logger.new(STDOUT)
logging_appender = ENV['GDC_LOGGING_APPENDER'] || 'SYSLOG'
splunk_file_logger = if logging_appender == 'CONSOLE'
Logger.new(STDOUT)
else
# NODE_NAME is set up by k8s execmgr
syslog_node = ENV['NODE_NAME']
syslog_node ? RemoteSyslogLogger.new(syslog_node, 514, program: "lcm_ruby_brick", facility: 'local2') : Logger.new(STDOUT)
end
splunk_logger = SplunkLoggerDecorator.new splunk_file_logger
splunk_logger.level = params['SPLUNK_LOG_LEVEL'] || GoodData::DEFAULT_SPLUNKLOG_LEVEL
splunk_logger = splunk_logger.extend(ContextLoggerDecorator)
Expand Down
40 changes: 40 additions & 0 deletions spec/unit/bricks/middleware/logger_middleware_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,46 @@
end
end

context 'when GDC_LOGGING_APPENDER is CONSOLE' do
let(:params) { { it_does: 'not matter' } }

around do |example|
original_appender = ENV['GDC_LOGGING_APPENDER']
ENV['GDC_LOGGING_APPENDER'] = 'CONSOLE'
example.run
ENV['GDC_LOGGING_APPENDER'] = original_appender
end

it 'does not create a remote syslog forwarder' do
ENV['NODE_NAME'] = '12.12.12.12'
expect(RemoteSyslogLogger).not_to receive(:new)
subject.call(params)
end

it 'still registers the splunk logger channel' do
expect(GoodData).to receive(:splunk_logging_on).with(splunk_logger)
subject.call(params)
end
end

context 'when GDC_LOGGING_APPENDER is SYSLOG' do
let(:params) { { it_does: 'not matter' } }
let(:node_name) { '12.12.12.12' }

around do |example|
original_appender = ENV['GDC_LOGGING_APPENDER']
ENV['GDC_LOGGING_APPENDER'] = 'SYSLOG'
example.run
ENV['GDC_LOGGING_APPENDER'] = original_appender
end

it 'creates a remote syslog forwarder' do
ENV['NODE_NAME'] = node_name
expect(RemoteSyslogLogger).to receive(:new).with(node_name, 514, program: 'lcm_ruby_brick', facility: 'local2')
subject.call(params)
end
end

context 'GDC_LOG_LEVEL' do
let(:params) { { 'GDC_LOG_LEVEL' => log_level } }

Expand Down
Loading