Class: Mizuno::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/mizuno/logger.rb

Constant Summary collapse

LEVELS =
{
::Logger::DEBUG => Java.org.apache.log4j.Level::DEBUG,
::Logger::INFO => Java.org.apache.log4j.Level::INFO,
::Logger::WARN => Java.org.apache.log4j.Level::WARN,
::Logger::ERROR => Java.org.apache.log4j.Level::ERROR,
::Logger::FATAL => Java.org.apache.log4j.Level::FATAL }

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLogger

Returns a new instance of Logger.



64
65
66
# File 'lib/mizuno/logger.rb', line 64

def initialize
    @log4j = Java.org.apache.log4j.Logger.getLogger('ruby')
end

Class Method Details

.configure(options = {}) ⇒ Object

Configure Log4J.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/mizuno/logger.rb', line 19

def Logger.configure(options = {})
    return if @options
    @options = options

    # Default logging threshold.
    limit = options[:warn] ? "WARN" : "ERROR"
    limit = "DEBUG" if ($DEBUG or options[:debug])

    if !options[:log4j]
      # Base logging configuration.
      config = <<-END
          log4j.rootCategory = #{limit}, default
          log4j.logger.org.eclipse.jetty.util.log = #{limit}, default
          log4j.appender.default.Threshold = #{limit}
          log4j.appender.default.layout = org.apache.log4j.PatternLayout
      END

      # Should we log to the console?
      config.concat(<<-END) unless options[:log]
          log4j.appender.default = org.apache.log4j.ConsoleAppender
          log4j.appender.default.layout.ConversionPattern = %m\\n
      END

      # Are we logging to a file?
      config.concat(<<-END) if options[:log]
          log4j.appender.default = org.apache.log4j.FileAppender
          log4j.appender.default.Append = true
          log4j.appender.default.File = #{options[:log]}
          log4j.appender.default.layout.ConversionPattern = %d %p %m\\n
      END

      # Set up Log4J via Properties.
      properties = Properties.new
      properties.load(ByteArrayInputStream.new(config.to_java_bytes))
      PropertyConfigurator.configure(properties)
    end

    # Create the default logger that gets used everywhere.
    @logger = new
end

.loggerObject



60
61
62
# File 'lib/mizuno/logger.rb', line 60

def Logger.logger
    @logger
end

Instance Method Details

#add(severity, message = nil, progname = nil) ⇒ Object



68
69
70
71
# File 'lib/mizuno/logger.rb', line 68

def add(severity, message = nil, progname = nil)
    content = (message or (block_given? and yield) or progname)
    @log4j.log(LEVELS[severity], content)
end

#closeObject



85
86
87
# File 'lib/mizuno/logger.rb', line 85

def close
    # No-op.
end

#flushObject



81
82
83
# File 'lib/mizuno/logger.rb', line 81

def flush
    # No-op.
end

#puts(message) ⇒ Object



73
74
75
# File 'lib/mizuno/logger.rb', line 73

def puts(message)
    write(message.to_s)
end

#write(message) ⇒ Object



77
78
79
# File 'lib/mizuno/logger.rb', line 77

def write(message)
    add(INFO, message)
end