Merge pull request #97 from mlkmhd/master

log event instead of insert query
This commit is contained in:
Karl 2017-11-08 12:48:45 +00:00 committed by GitHub
commit 2bdb75f1b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -208,16 +208,14 @@ class LogStash::Outputs::Jdbc < LogStash::Outputs::Base
end end
events.each do |event| events.each do |event|
query = nil
begin begin
statement = connection.prepareStatement( statement = connection.prepareStatement(
(@unsafe_statement == true) ? event.sprintf(@statement[0]) : @statement[0] (@unsafe_statement == true) ? event.sprintf(@statement[0]) : @statement[0]
) )
statement = add_statement_event_params(statement, event) if @statement.length > 1 statement = add_statement_event_params(statement, event) if @statement.length > 1
query = statement.toString
statement.execute statement.execute
rescue => e rescue => e
if retry_exception?(e, query) if retry_exception?(e, event.to_json())
events_to_retry.push(event) events_to_retry.push(event)
end end
ensure ensure
@ -308,16 +306,21 @@ class LogStash::Outputs::Jdbc < LogStash::Outputs::Base
statement statement
end end
def retry_exception?(exception, query) def retry_exception?(exception, event)
retrying = (exception.respond_to? 'getSQLState' and (RETRYABLE_SQLSTATE_CLASSES.include?(exception.getSQLState.to_s[0,2]) or @retry_sql_states.include?(exception.getSQLState))) retrying = (exception.respond_to? 'getSQLState' and (RETRYABLE_SQLSTATE_CLASSES.include?(exception.getSQLState.to_s[0,2]) or @retry_sql_states.include?(exception.getSQLState)))
log_jdbc_exception(exception, retrying, query) log_jdbc_exception(exception, retrying, event)
retrying retrying
end end
def log_jdbc_exception(exception, retrying, query) def log_jdbc_exception(exception, retrying, event)
current_exception = exception current_exception = exception
log_text = 'JDBC - Exception. ' + (retrying ? 'Retrying' : 'Not retrying') + '.' + ' with query: "' + query + '".' log_text = 'JDBC - Exception. ' + (retrying ? 'Retrying' : 'Not retrying') + '.'
if(event != nil)
log_text += ' event: "' + event + '".'
end
log_method = (retrying ? 'warn' : 'error') log_method = (retrying ? 'warn' : 'error')
loop do loop do