Module: Applicaster::Logger
- Defined in:
- lib/applicaster/logger.rb,
lib/applicaster/logger/rack.rb,
lib/applicaster/logger/railtie.rb,
lib/applicaster/logger/sidekiq.rb,
lib/applicaster/logger/version.rb,
lib/applicaster/logger/formatter.rb,
lib/applicaster/logger/thread_context.rb,
lib/applicaster/logger/lograge/formatter.rb,
lib/applicaster/logger/rack/request_data.rb,
lib/applicaster/logger/sidekiq/job_logger.rb,
lib/applicaster/logger/sidekiq/middleware.rb,
lib/applicaster/logger/rack/thread_context.rb,
lib/applicaster/logger/sidekiq/common_events.rb,
lib/applicaster/logger/sidekiq/thread_context.rb,
lib/applicaster/logger/sidekiq/exception_logger.rb
Defined Under Namespace
Modules: Lograge, Rack, Sidekiq, ThreadContext Classes: Formatter, Railtie
Constant Summary collapse
- VERSION =
"0.8.4"
- HOST =
::Socket.gethostname
Class Method Summary collapse
-
.truncate_bytes(text, truncate_at, omission: "...") ⇒ Object
Truncates
text
to at mostbytesize
bytes in length without breaking string encoding by splitting multibyte characters or breaking grapheme clusters (“perceptual characters”) by truncating at combining characters.
Class Method Details
.truncate_bytes(text, truncate_at, omission: "...") ⇒ Object
Truncates text
to at most bytesize
bytes in length without breaking string encoding by splitting multibyte characters or breaking grapheme clusters (“perceptual characters”) by truncating at combining characters. Code taken from activesupport/lib/active_support/core_ext/string/filters.rb
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/applicaster/logger.rb', line 16 def self.truncate_bytes(text, truncate_at, omission: "...") omission ||= "" case when text.bytesize <= truncate_at text.dup when omission.bytesize > truncate_at raise ArgumentError, "Omission #{omission.inspect} is #{omission.bytesize}, larger than the truncation length of #{truncate_at} bytes" when omission.bytesize == truncate_at omission.dup else text.class.new.tap do |cut| cut_at = truncate_at - omission.bytesize text.scan(/\X/) do |grapheme| if cut.bytesize + grapheme.bytesize <= cut_at cut << grapheme else break end end cut << omission end end end |