Skip to content

Commit d31295f

Browse files
authored
Merge pull request #12 from tharropoulos/logging
feat: add configurable logging
2 parents bd41d4b + 1bc6b8d commit d31295f

File tree

3 files changed

+34
-7
lines changed

3 files changed

+34
-7
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ Typesense.configuration = {
4747
protocol: 'http' # For Typesense Cloud use https
4848
}],
4949
api_key: 'your-api-key',
50-
connection_timeout_seconds: 2
50+
connection_timeout_seconds: 2,
51+
log_level: :info # Optional: Set logging level (:debug, :info, :warn, :error, :fatal, :unknown)
5152
}
5253
```
5354

lib/typesense-rails.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
require "logger"
2020
Rails.logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT))
21-
Rails.logger.level = Logger::INFO
21+
Rails.logger.level = Logger::WARN
2222

2323
module Typesense
2424
class NotConfigured < StandardError; end
@@ -269,7 +269,7 @@ def typesense_create_collection(collection_name, settings = nil)
269269
metadata ? { "metadata" => metadata } : {}
270270
)
271271
)
272-
Rails.logger.info "Collection '#{collection_name}' created!"
272+
Rails.logger.debug "Collection '#{collection_name}' created!"
273273

274274
typesense_multi_way_synonyms(collection_name, multi_way_synonyms) if multi_way_synonyms
275275

@@ -542,7 +542,7 @@ def typesense_index_objects_async(objects, batch_size = Typesense::IndexSettings
542542
end
543543
jsonl_object = documents.join("\n")
544544
ImportJob.perform(jsonl_object, collection_obj[:alias_name], batch_size)
545-
Rails.logger.info "#{objects.length} objects enqueued for import into #{collection_obj[:collection_name]}"
545+
Rails.logger.debug "#{objects.length} objects enqueued for import into #{collection_obj[:collection_name]}"
546546
end
547547
nil
548548
end
@@ -557,7 +557,7 @@ def typesense_index_objects(objects, batch_size = Typesense::IndexSettings::DEFA
557557
end
558558
jsonl_object = documents.join("\n")
559559
import_documents(jsonl_object, "upsert", collection_obj[:alias_name], batch_size: batch_size)
560-
Rails.logger.info "#{objects.length} objects upserted into #{collection_obj[:collection_name]}!"
560+
Rails.logger.debug "#{objects.length} objects upserted into #{collection_obj[:collection_name]}!"
561561
end
562562
nil
563563
end
@@ -613,7 +613,7 @@ def typesense_remove_from_index!(object)
613613
rescue Typesense::Error::ObjectNotFound => e
614614
Rails.logger.error "Object #{object_id} could not be removed from #{collection_obj[:collection_name]} collection! Use reindex to update the collection."
615615
end
616-
Rails.logger.info "Removed document with object id '#{object_id}' from #{collection_obj[:collection_name]}"
616+
Rails.logger.debug "Removed document with object id '#{object_id}' from #{collection_obj[:collection_name]}"
617617
end
618618
nil
619619
end
@@ -626,7 +626,7 @@ def typesense_clear_index!
626626
collection_obj = typesense_ensure_init(options, settings, false)
627627

628628
delete_collection(collection_obj[:alias_name])
629-
Rails.logger.info "Deleted #{collection_obj[:alias_name]} collection!"
629+
Rails.logger.debug "Deleted #{collection_obj[:alias_name]} collection!"
630630
@typesense_indexes[settings] = nil
631631
end
632632
nil

lib/typesense/config.rb

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,39 @@ def configuration
1111

1212
def configuration=(configuration)
1313
@@pagination_backend = configuration[:pagination_backend] if configuration.key?(:pagination_backend)
14+
@@log_level = configuration[:log_level] if configuration.key?(:log_level)
1415
@@configuration = configuration
16+
17+
Rails.logger.level = log_level_to_const(configuration[:log_level])
1518
end
1619

1720
def pagination_backend
1821
@@pagination_backend
1922
end
2023

24+
def log_level
25+
@@log_level
26+
end
27+
28+
def log_level_to_const(level)
29+
case level
30+
when :debug
31+
Logger::DEBUG
32+
when :info
33+
Logger::INFO
34+
when :warn
35+
Logger::WARN
36+
when :error
37+
Logger::ERROR
38+
when :fatal
39+
Logger::FATAL
40+
when :unknown
41+
Logger::UNKNOWN
42+
else
43+
Logger::WARN # default fallback
44+
end
45+
end
46+
2147
def client
2248
setup_client if @client.nil?
2349
@client

0 commit comments

Comments
 (0)