Skip to content

Instantly share code, notes, and snippets.

@ryanwood
Last active November 28, 2018 15:31
Show Gist options
  • Save ryanwood/41c55feba11b41511a577e94ce2dda16 to your computer and use it in GitHub Desktop.
Save ryanwood/41c55feba11b41511a577e94ce2dda16 to your computer and use it in GitHub Desktop.

Revisions

  1. ryanwood revised this gist Nov 28, 2018. 2 changed files with 5 additions and 7 deletions.
    2 changes: 1 addition & 1 deletion multi_logger.rb → multi_io.rb
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    # So we can log to STDOUT and a file at once. ;)
    class MultiLogger
    class MultiIO
    def initialize(*targets)
    @targets = targets
    end
    10 changes: 4 additions & 6 deletions script.rb
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,11 @@
    require 'multi_logger'
    require 'multi_io'

    def logger
    target = if DEBUG
    STDOUT
    else
    @logger ||= begin
    log_file = File.open("my_log_file.log", "a")
    MultiIO.new(STDOUT, log_file)
    target = MultiIO.new(STDOUT, log_file)
    Logger.new(target)
    end
    @logger ||= Logger.new(target)
    end

    # Use
  2. ryanwood created this gist Nov 28, 2018.
    14 changes: 14 additions & 0 deletions multi_logger.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    # So we can log to STDOUT and a file at once. ;)
    class MultiLogger
    def initialize(*targets)
    @targets = targets
    end

    def write(*args)
    @targets.each {|t| t.write(*args)}
    end

    def close
    @targets.each(&:close)
    end
    end
    16 changes: 16 additions & 0 deletions script.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    require 'multi_logger'

    def logger
    target = if DEBUG
    STDOUT
    else
    log_file = File.open("my_log_file.log", "a")
    MultiIO.new(STDOUT, log_file)
    end
    @logger ||= Logger.new(target)
    end

    # Use

    logger.debug("Would have run: #{sql}")
    logger.info('Checkpoint!')