Module: TestaLogger::Logger::Persistence
- Included in:
- TestaLogger::Logger
- Defined in:
- lib/testa_logger/logger/persistence.rb
Instance Method Summary collapse
Instance Method Details
#init_s3_client ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/testa_logger/logger/persistence.rb', line 4 def init_s3_client require "aws-sdk-s3" Aws.config.update( region: .s3_credentials[:region], credentials: Aws::Credentials.new( .s3_credentials[:access_key_id], .s3_credentials[:secret_access_key]) ) @s3 = Aws::S3::Client.new at_exit { persist rescue false } end |
#persist ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/testa_logger/logger/persistence.rb', line 30 def persist return if @s3.nil? begin @pause = true key = "logs/#{app}/#{group}" key += "/#{subgroup}" unless subgroup.nil? key += "/#{Time.now.strftime('%d.%m.%Y')}" extension = File.extname(.filepath) filename = File.basename(.filepath, extension) time_string = Time.now.strftime("%H_%M_%S") key += "/#{filename}_#{time_string}#{extension}" response = @s3.put_object( bucket: .s3_credentials[:bucket_name], key: key, body: IO.read(.filepath) ) error(TAG, "Failed to persist log file #{options.filepath}. Response: #{response.body}") unless response.etag rescue StandardError => e error(TAG, e) raise ensure @pause = false end end |
#persist_with_record(record, attachment_name) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/testa_logger/logger/persistence.rb', line 16 def persist_with_record(record, ) raise IoPersistenceError if @log_device.is_a?(IO) begin @pause = true record.send().attach(io: File.open(.filepath), filename: "#{attachment_name}.log") rescue StandardError => e error(TAG, e) raise ensure @pause = false end end |