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