Module: ClickhouseNative::Logging

Included in:
Client
Defined in:
lib/clickhouse_native/logging.rb

Overview

Sequel-style logging wrapper. Prepended onto Client so it fires for the raw C-level execute/query/query_value/query_each/insert_block calls.

client = Client.new(..., logger: Rails.logger)
client.query("SELECT 1")
# => DEBUG  -- : (0.421ms) SELECT 1

Errors are logged at ERROR with the elapsed time and exception class.

Constant Summary collapse

LEVEL =
:debug

Instance Method Summary collapse

Instance Method Details

#execute(sql) ⇒ Object



15
16
17
# File 'lib/clickhouse_native/logging.rb', line 15

def execute(sql)
  log_sql(sql) { super }
end

#insert_block(table, columns, rows) ⇒ Object



31
32
33
34
# File 'lib/clickhouse_native/logging.rb', line 31

def insert_block(table, columns, rows)
  col_list = columns.map(&:first).join(", ")
  log_sql("INSERT INTO #{table} (#{col_list}) VALUES (#{rows.size} rows)") { super }
end

#query(sql) ⇒ Object



19
20
21
# File 'lib/clickhouse_native/logging.rb', line 19

def query(sql)
  log_sql(sql) { super }
end

#query_each(sql) ⇒ Object



27
28
29
# File 'lib/clickhouse_native/logging.rb', line 27

def query_each(sql, &)
  log_sql(sql) { super }
end

#query_value(sql) ⇒ Object



23
24
25
# File 'lib/clickhouse_native/logging.rb', line 23

def query_value(sql)
  log_sql(sql) { super }
end