Sha256: b9c22abcfcb34ecfc94387d1d2a8b4d413eb4add1daabd6c27ad3140861be01b

Contents?: true

Size: 1.67 KB

Versions: 9

Compression:

Stored size: 1.67 KB

Contents

#!/usr/bin/env ruby -w
# encoding: UTF-8
#
# = LogFile.rb -- The TaskJuggler III Project Management Software
#
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011
#               by Chris Schlaeger <chris@linux.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#

require 'singleton'

class TaskJuggler

  class LogFile

    attr_accessor :logFile, :appName, :outputLevel, :logLevel

    include Singleton

    def initialize
      @logFile = 'logfile'
      @appName = 'undefined'
      @logLevel = 3
      @outputLevel = 3
    end

    def debug(message)
      $stderr.puts message if @outputLevel >= 4
      log('DEBUG', message) if @logLevel >= 4
    end

    def info(message)
      $stderr.puts message if @outputLevel >= 3
      log('INFO', message) if @logLevel >= 3
    end

    def warning(message)
      $stderr.puts message if @outputLevel >= 2
      log('WARN', message) if @logLevel >= 2
    end

    def error(message)
      $stderr.puts message if @outputLevel >= 1
      log("ERROR", message) if @logLevel >= 1
    end

    def fatal(message)
      $stderr.puts message if @outputLevel >= 0
      log("FATAL", message) if @logLevel >= 0
      exit 1
    end

    def log(type, message)
      timeStamp = Time.new.strftime("%Y-%m-%d %H:%M:%S")
      begin
        @logFile.untaint
        File.open(@logFile, 'a') do |f|
          f.write("#{timeStamp} #{type} #{@appName}[#{Process.pid}]: " +
                  "#{message}\n")
        end
      rescue
        $stderr.puts "Cannot write to log file #{@logFile}: #{$!}"
      end
    end

  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
taskjuggler-3.0.0 lib/taskjuggler/LogFile.rb
taskjuggler-0.2.2 lib/taskjuggler/LogFile.rb
taskjuggler-0.2.1 lib/taskjuggler/LogFile.rb
taskjuggler-0.2.0 lib/taskjuggler/LogFile.rb
taskjuggler-0.1.1 lib/taskjuggler/LogFile.rb
taskjuggler-0.1.0 lib/taskjuggler/LogFile.rb
taskjuggler-0.0.11 lib/taskjuggler/LogFile.rb
taskjuggler-0.0.10 lib/LogFile.rb
taskjuggler-0.0.9 lib/LogFile.rb