yeti_logger 3.2.0 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.github/workflows/ruby.yml +32 -0
 - data/CHANGELOG.md +9 -0
 - data/README.md +13 -1
 - data/lib/yeti_logger/custom_formatter.rb +34 -0
 - data/lib/yeti_logger/version.rb +1 -1
 - data/spec/lib/yeti_logger/message_formatters_spec.rb +1 -0
 - metadata +5 -6
 - data/.ruby-gemset +0 -1
 - data/.ruby-version +0 -1
 - data/.travis.yml +0 -18
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: f58be8ecadfe9be95d8517795d6d28b68d3c870957f73477e9a9780c78089c9d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b693a3f73e811f9f2d773755d05339b083517bbf288dcb96cf7c2710819ce326
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: '010960813b5a5cabea56c2299a692a5111682a330262350bd68da570c435ca9a61cfcdf79ff66c20c18424a596179ea2423681d3acb42262ce35d61b4e3db45f'
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 5f1a528a27bbc3b851c4980f3fe5af6c135a37874da3744c9a958488b351fa41e772725241204d87e61f4e946de96814defd08ddafa26e15ac9bdade103c5b3c
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # This workflow uses actions that are not certified by GitHub.
         
     | 
| 
      
 2 
     | 
    
         
            +
            # They are provided by a third-party and are governed by
         
     | 
| 
      
 3 
     | 
    
         
            +
            # separate terms of service, privacy policy, and support
         
     | 
| 
      
 4 
     | 
    
         
            +
            # documentation.
         
     | 
| 
      
 5 
     | 
    
         
            +
            # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
         
     | 
| 
      
 6 
     | 
    
         
            +
            # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            name: Ruby
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            on:
         
     | 
| 
      
 11 
     | 
    
         
            +
              push:
         
     | 
| 
      
 12 
     | 
    
         
            +
                branches: [ master ]
         
     | 
| 
      
 13 
     | 
    
         
            +
              pull_request:
         
     | 
| 
      
 14 
     | 
    
         
            +
                branches: [ master ]
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            jobs:
         
     | 
| 
      
 17 
     | 
    
         
            +
              test:
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                runs-on: ubuntu-latest
         
     | 
| 
      
 20 
     | 
    
         
            +
                strategy:
         
     | 
| 
      
 21 
     | 
    
         
            +
                  matrix:
         
     | 
| 
      
 22 
     | 
    
         
            +
                    ruby-version: ['2.6', '2.7', '3.0']
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                steps:
         
     | 
| 
      
 25 
     | 
    
         
            +
                - uses: actions/checkout@v2
         
     | 
| 
      
 26 
     | 
    
         
            +
                - name: Set up Ruby
         
     | 
| 
      
 27 
     | 
    
         
            +
                  uses: ruby/setup-ruby@v1
         
     | 
| 
      
 28 
     | 
    
         
            +
                  with:
         
     | 
| 
      
 29 
     | 
    
         
            +
                    ruby-version: ${{ matrix.ruby-version }}
         
     | 
| 
      
 30 
     | 
    
         
            +
                    bundler-cache: true # runs 'bundle install' and caches installed gems automatically
         
     | 
| 
      
 31 
     | 
    
         
            +
                - name: Run tests
         
     | 
| 
      
 32 
     | 
    
         
            +
                  run: bundle exec rake
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # yeti_logger changelog
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## v3.3.2
         
     | 
| 
      
 4 
     | 
    
         
            +
            - CustomFormatter does not include timestamp in log in production and staging environments
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            ## v3.3.1
         
     | 
| 
      
 7 
     | 
    
         
            +
            - CustomFormatter uses Time.now instead of Time.now.utc
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ## v3.3.0
         
     | 
| 
      
 10 
     | 
    
         
            +
            - Add custom rails logger formatter
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       3 
12 
     | 
    
         
             
            ## v3.2.0
         
     | 
| 
       4 
13 
     | 
    
         
             
            - Added configuration to override debug logging for specific users
         
     | 
| 
       5 
14 
     | 
    
         | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -2,7 +2,8 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Provides standardized logging across Yesware apps.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            [](https://github.com/Yesware/yeti_logger/actions/workflows/ruby.yml)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
            ## Installation
         
     | 
| 
       8 
9 
     | 
    
         | 
| 
         @@ -105,6 +106,17 @@ is a hash, then the exception in injected into the hash and printed as 
     | 
|
| 
       105 
106 
     | 
    
         
             
            additional `key=value` pairs. Classname, message and backtrace are included in
         
     | 
| 
       106 
107 
     | 
    
         
             
            the message.
         
     | 
| 
       107 
108 
     | 
    
         | 
| 
      
 109 
     | 
    
         
            +
            ### Custom formatter
         
     | 
| 
      
 110 
     | 
    
         
            +
            To add a set of tags to every log output by the underlying logger, initialize
         
     | 
| 
      
 111 
     | 
    
         
            +
            `YetiLogger::CustomFormatter` and assign it to your logger's formatter. Pass a
         
     | 
| 
      
 112 
     | 
    
         
            +
            hash to the initializer mapping the name of the tags to the proc that evaluates
         
     | 
| 
      
 113 
     | 
    
         
            +
            to their value. The procs are evaluated lazily when the log generated.
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                Rails.logger.formatter = CustomFormatter.new({
         
     | 
| 
      
 116 
     | 
    
         
            +
                                                            "thread_id": -> { Thread.current.object_id.to_s(36) },
         
     | 
| 
      
 117 
     | 
    
         
            +
                                                            "trace_id": -> { OpenTelemetry::Trace.current_span ? OpenTelemetry::Trace.current_span.context.hex_trace_id : "0" },
         
     | 
| 
      
 118 
     | 
    
         
            +
                                                            })
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
       108 
120 
     | 
    
         
             
            ### Nested Hashes
         
     | 
| 
       109 
121 
     | 
    
         | 
| 
       110 
122 
     | 
    
         
             
            For hash logging, each key and value are converted to strings which means
         
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # CustomFormatter is a custom Rails log formatter.
         
     | 
| 
      
 2 
     | 
    
         
            +
            # It has support for adding arbitrary tags to every log created by the Rails logger.
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Tag values are generated at log creation time.
         
     | 
| 
      
 4 
     | 
    
         
            +
            class YetiLogger::CustomFormatter
         
     | 
| 
      
 5 
     | 
    
         
            +
              # @param tags [Hash] - maps names of tags to procs that return their value.
         
     | 
| 
      
 6 
     | 
    
         
            +
              def initialize(tags = {})
         
     | 
| 
      
 7 
     | 
    
         
            +
                super()
         
     | 
| 
      
 8 
     | 
    
         
            +
                @tags = tags
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              # @param tags [Hash] - maps names of tags to procs that return their value
         
     | 
| 
      
 12 
     | 
    
         
            +
              def add_tags(tags)
         
     | 
| 
      
 13 
     | 
    
         
            +
                @tags.merge!(tags)
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              # @param severity [String]
         
     | 
| 
      
 17 
     | 
    
         
            +
              # @param time [Time] unused
         
     | 
| 
      
 18 
     | 
    
         
            +
              # @param progname [String] unused
         
     | 
| 
      
 19 
     | 
    
         
            +
              # @param msg [String] - log body
         
     | 
| 
      
 20 
     | 
    
         
            +
              def call(severity, time, progname, msg)
         
     | 
| 
      
 21 
     | 
    
         
            +
                timestamp = %w(production staging).include?(ENV['RAILS_ENV']) ? "" : "#{Time.now.iso8601(3)} "
         
     | 
| 
      
 22 
     | 
    
         
            +
                pid = Process.pid
         
     | 
| 
      
 23 
     | 
    
         
            +
                msg = msg.inspect unless msg.is_a?(String)
         
     | 
| 
      
 24 
     | 
    
         
            +
                msg = "#{msg}\n" unless msg[-1] == ?\n
         
     | 
| 
      
 25 
     | 
    
         
            +
                log_str = "#{timestamp}pid=#{pid}"
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                tag_str = @tags.map { |k, v|
         
     | 
| 
      
 28 
     | 
    
         
            +
                  value = v.call
         
     | 
| 
      
 29 
     | 
    
         
            +
                  "#{k}=#{value}" unless value.to_s.empty?
         
     | 
| 
      
 30 
     | 
    
         
            +
                }.compact.join(' ')
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                "#{log_str}#{tag_str.empty? ? '' : ' ' + tag_str} [#{severity}] - #{msg}"
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/yeti_logger/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: yeti_logger
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3.2 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.3.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Yesware, Inc
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-04-03 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: activesupport
         
     | 
| 
         @@ -115,11 +115,9 @@ executables: [] 
     | 
|
| 
       115 
115 
     | 
    
         
             
            extensions: []
         
     | 
| 
       116 
116 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       117 
117 
     | 
    
         
             
            files:
         
     | 
| 
      
 118 
     | 
    
         
            +
            - ".github/workflows/ruby.yml"
         
     | 
| 
       118 
119 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       119 
120 
     | 
    
         
             
            - ".rspec"
         
     | 
| 
       120 
     | 
    
         
            -
            - ".ruby-gemset"
         
     | 
| 
       121 
     | 
    
         
            -
            - ".ruby-version"
         
     | 
| 
       122 
     | 
    
         
            -
            - ".travis.yml"
         
     | 
| 
       123 
121 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
       124 
122 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       125 
123 
     | 
    
         
             
            - MIT-LICENSE
         
     | 
| 
         @@ -128,6 +126,7 @@ files: 
     | 
|
| 
       128 
126 
     | 
    
         
             
            - lib/yeti_logger.rb
         
     | 
| 
       129 
127 
     | 
    
         
             
            - lib/yeti_logger/configuration.rb
         
     | 
| 
       130 
128 
     | 
    
         
             
            - lib/yeti_logger/constants.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - lib/yeti_logger/custom_formatter.rb
         
     | 
| 
       131 
130 
     | 
    
         
             
            - lib/yeti_logger/message_formatters.rb
         
     | 
| 
       132 
131 
     | 
    
         
             
            - lib/yeti_logger/test_helper.rb
         
     | 
| 
       133 
132 
     | 
    
         
             
            - lib/yeti_logger/version.rb
         
     | 
| 
         @@ -157,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       157 
156 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       158 
157 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       159 
158 
     | 
    
         
             
            requirements: []
         
     | 
| 
       160 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 159 
     | 
    
         
            +
            rubygems_version: 3.5.3
         
     | 
| 
       161 
160 
     | 
    
         
             
            signing_key:
         
     | 
| 
       162 
161 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       163 
162 
     | 
    
         
             
            summary: Provides standardized logging
         
     | 
    
        data/.ruby-gemset
    DELETED
    
    | 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            yesware
         
     | 
    
        data/.ruby-version
    DELETED
    
    | 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ruby-2.7.3
         
     | 
    
        data/.travis.yml
    DELETED