Sha256: ee88e22546e3e8ac39760af5efa11b2ce3644c81d60136da8d4d52e9219fb85f

Contents?: true

Size: 1.17 KB

Versions: 14

Compression:

Stored size: 1.17 KB

Contents

require 'sinatra'
class ApplicationController < Sinatra::Base
  LOGGER = if (settings.logging == !!settings.logging)
    Lumberjack::Logger.new $stdout
  else
    Lumberjack::Logger.new $stdout, level: settings.logging
  end

  set :logger, LOGGER

  class DummyLogger
    def initialize(silence = false, stdout = nil)
      @silence = silence
      @stdout = stdout
    end

    def method_missing(m, *args, &block)
      LOGGER.send(m, *args, &block)
      $stdout.reopen(@stdout) if @silence
    end
  end

  helpers do
    def logger()
      if settings.logging
        return DummyLogger.new
      else
        stdout = $stdout.clone
        $stdout.reopen IO::NULL
        return DummyLogger.new(true, stdout)
      end
    end
  end

  private_constant :DummyLogger

  if settings.log_file
    time = Time.now.strftime settings.log_directory_format # Sanitize time!
    path = Eucalypt.path('logs', time)

    require 'fileutils'
    FileUtils.mkdir_p path

    $stderr.reopen File.new(File.join(path, "#{settings.environment}.stderr.log"), 'a+')
    $stderr.sync = true
    $stdout.reopen File.new(File.join(path, "#{settings.environment}.stdout.log"), 'a+')
    $stdout.sync = true
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
eucalypt-0.9.0 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.8.0 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.7.2 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.7.1 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.7.0 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.6.2 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.6.1 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.6.0 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.5.4 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.5.3 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.5.2 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.5.1 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.5.0 lib/eucalypt/core/helpers/logging.rb
eucalypt-0.4.2 lib/eucalypt/core/helpers/logging.rb