Module: Spider::Logger

Included in:
Controller, Model::BaseModel, Model::Storage::BaseStorage, Template, TemplateCache
Defined in:
lib/spiderfw/utils/logger.rb

Overview

Utility to consolidate many loggers into one. Can be used as a simple Logger, and will pass log messages to each of its child.

Defined Under Namespace

Classes: Formatter, LogDevice, Logger

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add(dest, logger, levels = {}) ⇒ Object



32
33
34
# File 'lib/spiderfw/utils/logger.rb', line 32

def add(dest, logger, levels={})
    @loggers[dest] = logger
end

.close(dest) ⇒ Object

Close the given logger



37
38
39
40
# File 'lib/spiderfw/utils/logger.rb', line 37

def close(dest)
    #raise RuntimeError, "No open logger for #{dest}" unless @loggers && @loggers[dest]
    @loggers.delete(dest)
end

.close_allObject

Closes all loggers.



43
44
45
# File 'lib/spiderfw/utils/logger.rb', line 43

def close_all
    @loggers = {}
end

.datetime_formatObject



112
113
114
115
116
# File 'lib/spiderfw/utils/logger.rb', line 112

def datetime_format
    @loggers.each do |d, l|
        return l.datetime_format
    end
end

.datetime_format=(datetime_format) ⇒ Object



118
119
120
121
122
# File 'lib/spiderfw/utils/logger.rb', line 118

def datetime_format=(datetime_format)
    @loggers.each do |d, l|
        l.datetime_format=(datetime_format)
    end
end

.debug(*args, &proc) ⇒ Object



71
72
73
# File 'lib/spiderfw/utils/logger.rb', line 71

def debug(*args, &proc)
    send_to_loggers(:debug, *args, &proc)
end

.debug?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/spiderfw/utils/logger.rb', line 75

def debug?
    enquire_loggers(:debug?)
end

.enquire_loggers(method) ⇒ Object



66
67
68
69
# File 'lib/spiderfw/utils/logger.rb', line 66

def enquire_loggers(method)
    @loggers.each{ |dest, l| return true if l.send(method) }
    return false                
end

.error(*args, &proc) ⇒ Object



96
97
98
# File 'lib/spiderfw/utils/logger.rb', line 96

def error(*args, &proc)
    send_to_loggers(:error, *args, &proc)
end

.error?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'lib/spiderfw/utils/logger.rb', line 100

def error?
    enquire_loggers(:error?)
end

.fatal(*args, &proc) ⇒ Object



104
105
106
# File 'lib/spiderfw/utils/logger.rb', line 104

def fatal(*args, &proc)
    send_to_loggers(:fatal, *args, &proc)
end

.fatal?Boolean

Returns:

  • (Boolean)


108
109
110
# File 'lib/spiderfw/utils/logger.rb', line 108

def fatal?
    enquire_loggers(:fatal?)
end

.info(*args, &proc) ⇒ Object



79
80
81
# File 'lib/spiderfw/utils/logger.rb', line 79

def info(*args, &proc)
    send_to_loggers(:info, *args, &proc)
end

.info?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/spiderfw/utils/logger.rb', line 83

def info?
    enquire_loggers(:info?)
end

.method_missing(method, *args, &proc) ⇒ Object



128
129
130
# File 'lib/spiderfw/utils/logger.rb', line 128

def method_missing(method, *args, &proc)
    send_to_loggers(method, *args, &proc)
end

.open(dest, level = :WARN) ⇒ Object

Open a new logger.



21
22
23
24
25
26
27
28
29
30
# File 'lib/spiderfw/utils/logger.rb', line 21

def open(dest, level= :WARN)
    begin
        logger = Spider::Logger::Logger.new(dest, Spider.conf.get('log.rotate.age'), Spider.conf.get('log.rotate.size'))
        logger.formatter = Spider::Logger::Formatter.new
        logger.level = ::Logger.const_get(level)
        add(dest, logger)
    rescue => exc
        STDERR << "Can't open logging to #{dest}: #{exc}\n"
    end
end

.reopen(dest, level = :WARN) ⇒ Object

Closes and reopens a logger.

Raises:

  • (RuntimeError)


48
49
50
51
52
# File 'lib/spiderfw/utils/logger.rb', line 48

def reopen(dest, level= :WARN)
    raise RuntimeError, "No open logger for #{dest}" unless @loggers && @loggers[dest]
    @loggers.delete(dest)
    self.open(dest, level)
end

.send_to_loggers(action, *args, &proc) ⇒ Object

Sends a method to all loggers.



55
56
57
58
59
60
61
62
63
64
# File 'lib/spiderfw/utils/logger.rb', line 55

def send_to_loggers(action, *args, &proc)
    return if $SAFE > 1
    return unless @loggers
    @loggers.each do |dest, logger| 
        begin
            logger.send(action, *args, &proc) 
        rescue => exc
        end
    end
end

.unknown(*args, &proc) ⇒ Object



124
125
126
# File 'lib/spiderfw/utils/logger.rb', line 124

def unknown(*args, &proc)
    send_to_loggers(:unknown, *args, &proc)
end

.warn(*args, &proc) ⇒ Object



87
88
89
# File 'lib/spiderfw/utils/logger.rb', line 87

def warn(*args, &proc)
    send_to_loggers(:warn, *args, &proc)
end

.warn?Boolean

Returns:

  • (Boolean)


91
92
93
# File 'lib/spiderfw/utils/logger.rb', line 91

def warn?
    enquire_loggers(:warn?)
end

Instance Method Details

#debug(*args, &proc) ⇒ Object



134
135
136
# File 'lib/spiderfw/utils/logger.rb', line 134

def debug(*args, &proc)
    Spider::Logger.debug(*args, &proc)
end

#debug?Boolean

Returns:

  • (Boolean)


158
159
160
# File 'lib/spiderfw/utils/logger.rb', line 158

def debug?
    Spider::Logger.debug?
end

#error(*args, &proc) ⇒ Object



146
147
148
# File 'lib/spiderfw/utils/logger.rb', line 146

def error(*args, &proc)
    Spider::Logger.error(*args, &proc)
end

#error?Boolean

Returns:

  • (Boolean)


170
171
172
# File 'lib/spiderfw/utils/logger.rb', line 170

def error?
    Spider::Logger.error?
end

#fatal(*args, &proc) ⇒ Object



150
151
152
# File 'lib/spiderfw/utils/logger.rb', line 150

def fatal(*args, &proc)
    Spider::Logger.fatal(*args, &proc)
end

#fatal?Boolean

Returns:

  • (Boolean)


174
175
176
# File 'lib/spiderfw/utils/logger.rb', line 174

def fatal?
    Spider::Logger.fatal?
end

#info(*args, &proc) ⇒ Object



138
139
140
# File 'lib/spiderfw/utils/logger.rb', line 138

def info(*args, &proc)
    Spider::Logger.info(*args, &proc)
end

#info?Boolean

Returns:

  • (Boolean)


162
163
164
# File 'lib/spiderfw/utils/logger.rb', line 162

def info?
    Spider::Logger.info?
end

#unknown(*args, &proc) ⇒ Object



154
155
156
# File 'lib/spiderfw/utils/logger.rb', line 154

def unknown(*args, &proc)
    Spider::Logger.unknown(*args, &proc)
end

#warn(*args, &proc) ⇒ Object



142
143
144
# File 'lib/spiderfw/utils/logger.rb', line 142

def warn(*args, &proc)
    Spider::Logger.warn(*args, &proc)
end

#warn?Boolean

Returns:

  • (Boolean)


166
167
168
# File 'lib/spiderfw/utils/logger.rb', line 166

def warn?
    Spider::Logger.warn?
end