170: def write_queue
171: @queue.each do |service,q|
172: last_sv = nil
173: last_m = nil
174: last_count = 0
175: next unless log = @logs[service]
176: lf = log.logfile
177: cull = log.cull
178: levels = log.levels
179: q.each do |m|
180: next unless levels.has_key?(m[1])
181: if cull
182: if m.last == last_m and m[0..1] == last_sv
183: last_count += 1
184: next
185: elsif last_count > 0
186: lf.puts "#{@now}|#{last_sv.join(C_bar)}|Last message repeated #{last_count} times"
187: last_sv = last_m = nil
188: last_count = 0
189: end
190: lf.puts "#{@now}|#{m.join(C_bar)}"
191: last_m = m.last
192: last_sv = m[0..1]
193: else
194: lf.puts "#{@now}|#{m.join(C_bar)}"
195: end
196: @wcount += 1
197: end
198: lf.puts "#{@now}|#{last_sv.join(C_bar)}|Last message repeated #{last_count} times" if cull and last_count > 0
199: end
200: @queue.each {|service,q| q.clear}
201: end