🚀 DAY 5 OF LAUNCH WEEK: Introducing Socket Firewall Enterprise.Learn more →
Socket
Book a DemoInstallSign in
Socket

beautiful-log

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

beautiful-log

bundlerRubygems
Version
0.2.2
Version published
Maintainers
1
Created
Source

Beautiful::Log(beta)

Gem Version

Make Rails log beautiful!

Colored log

2016-09-28 1 24 05

  • Thanks to fazibear/colorize, logged messages stand out according to their levels.
  • Messages align beautifully so you can start reading custom message instantly.

Backtrace

_2016-12-10_2_54_42

Your backtrace will be neat and understandable with Beautiful::Log::Formatter.

  • Only the file paths of your codes (app/..) are displayed and highlighted.
  • The paths are no longer verbosely long, they are shrunk to relative path from your project root.

Status Code

2016-12-10 1 30 33

2016-12-10 1 41 25

You don't miss the responses' safety any more. A log of response completion tells either your app responded correctly or not by intuitive colors. You can customize color according to status code range (hundread level e.g: 1..3.

Pretty-printd object

Thanks to awesome-print/awesome_print, a complex object is beautifully displayed. You won't be annoyed with messy long string of object description.

  • Hash
hash
  • ActiveRecord instance
ar

awesome-print/awesome_print supports more types to beautiflize.

All you need to do is rescue error, just log it Rails.logger.error e .

Logs in Rake tasks

Rake tasks are fully logged with Beautiful::Log::TaskLogging just by adding some codes to Rakefile .

Installation

Add this line to your application's Gemfile:

gem 'beautiful-log'
# or
gem 'beautiful-log', git: 'git@github.com:nogahighland/beautiful-log.git'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install beautiful-log

Usage

  • config/application.rb

    config.logger = Logger.new(config.paths["log"].first)
    config.logger.formatter = Beautiful::Log::Formatter.new
    
  • config/environments/development.rb

    config.log_level = :debug # set the level you need
    

You can change the log level from :debug to :fatal depending on staging level (develop/production/test).

  • Rakefile

    Rails.logger = Logger.new(STDOUT)
    Rails.logger.formatter = Beautiful::Log::Formatter.new
    Rails.logger.level = Logger::DEBUG # set the level you need
    
  • Or just include in application.rb

    module YourApplication
      class Application < Rails::Application
        # This is equivalent to code below:
        #   Rails.logger = Logger.new(config.paths['log'].first)
        #   Rails.logger.formatter = Beautiful::Log::Formatter.new
        include Beautiful::Log
        :
      end
    end
    

Configurations

You can customize the log appearance by passing a hash to constructor of Beautiful::Log::Formatter.

Below is a hash containing default values.

Beautiful::Log::Formatter.new(
  only_project_code: true,
  shrink_bundle_path: true,
  backtrace_ignore_paths: [],
  highlighted_line_range: 3,
  highlighted_line_styles: :cyan,
  backtrace_styles: :light_red,
  error_file_path_styles: :red,
  severity_styles: { FATAL: [:red, :swap], ERROR: :red, WARN: :light_red },
  status_code_styles: { (1..3) => [:green, :bold], 'other' => [:red, :bold] },
  occurence_line: :light_blue
)

Note

  • backtrace_ignore_paths includes bundle path if you use Bundler. The bundle path is a string Bundler.bundle_path returns, which is written in .bundle/config .

  • If you pass a hash as status_code_styles or severity_styles, those styles are merged with default values shown above.

Style specification

  • For *_styles keys, you can set a Symbol or an Array of Symbol to style a string (color, bold, underline, etc). The elements of the array are applied in order.

  • Pick your favorite color or style (called 'mode' in fazibear/colorize) below.

Requirements

  • Ruby 2.3-

Contribution

  • If you find any problematic behaviors, please make an issue with problem backtrace.
  • If you want to make changes, fork this repository, then make a pull request.

TODOs

  • Specs
  • Is is smarter to pass a proc/block to customize log style?

FAQs

Package last updated on 08 Jun 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts