lib/semantic_logger/formatters/base.rb in semantic_logger-4.1.1 vs lib/semantic_logger/formatters/base.rb in semantic_logger-4.2.0
- old
+ new
@@ -7,11 +7,11 @@
# Time precision varies by Ruby interpreter
# JRuby 9.1.8.0 supports microseconds
PRECISION =
if defined?(JRuby)
if (JRUBY_VERSION.to_f >= 9.1)
- maint = JRUBY_VERSION.match(/\A\d\.\d\.(\d)\./)[1].to_i
+ maint = JRUBY_VERSION.match(/\A\d+\.\d+\.(\d+)\./)[1].to_i
(maint >= 8) || (JRUBY_VERSION.to_f > 9.1) ? 6 : 3
else
3
end
else
@@ -19,12 +19,13 @@
end
TIME_FORMAT = "%Y-%m-%d %H:%M:%S.%#{PRECISION}N"
# Parameters
# time_format: [String|Symbol|nil]
- # See Time#strftime for the format of this string
- # :iso_8601 Outputs an ISO8601 Formatted timestamp
+ # See Time#strftime for the format of this string.
+ # :iso_8601 Outputs an ISO8601 Formatted timestamp.
+ # :ms Output in miliseconds since epoch.
# nil: Returns Empty string for time ( no time is output ).
# Default: '%Y-%m-%d %H:%M:%S.%6N'
def initialize(time_format: TIME_FORMAT, log_host: true, log_application: true)
@time_format = time_format
@log_host = log_host
@@ -41,9 +42,15 @@
# Return the Time as a formatted string
def format_time(time)
case time_format
when :iso_8601
time.utc.iso8601(PRECISION)
+ when :ms
+ (time.to_f * 1_000).to_i
+ when :none
+ time
+ when :seconds
+ time.to_f
when nil
''
else
time.strftime(time_format)
end