LogAn::Inc::Fileparser::Line#event_line added and modified #event_read

master
Denis Knauf 2010-04-02 16:49:45 +02:00
parent b7d6689225
commit 7a244cd465
2 changed files with 23 additions and 23 deletions

View File

@ -30,12 +30,14 @@ module LogAn
@buffer, @linebuffer = Select::Buffer.new( ''), Select::Buffer.new( '') @buffer, @linebuffer = Select::Buffer.new( ''), Select::Buffer.new( '')
end end
def event_read str, sock def event_read str, sock = nil
@buffer += str @buffer += str
@buffer.each! @delimiter do |line| @buffer.each! @delimiter, &method( :event_line)
emit line end
seeks line.length
end def event_line line
emit line
seeks line.length
end end
end end
@ -45,15 +47,12 @@ module LogAn
@multiline = multiline || /^\d\d-\d\d-\d\d:/ @multiline = multiline || /^\d\d-\d\d-\d\d:/
end end
def event_read str, sock def event_line line
@buffer += str if line =~ @multiline
@buffer.each! @delimiter do |line| emit @linebuffer.to_s
if line =~ @multiline seeks @linebuffer.length
emit @linebuffer.to_s @linebuffer.replace line
seeks @linebuffer.length else @linebuffer += line
@linebuffer.replace line
else @linebuffer += line
end
end end
end end
end end

View File

@ -51,9 +51,9 @@ module LogAn::Inc
# : Server-Configuration. default { port: 1087 } # : Server-Configuration. default { port: 1087 }
def initialize conf def initialize conf
super super
@conf = {}
# Copy config - changes possible # Copy config - changes possible
@conf = {}
conf.each {|key, val| @conf[key]= val } conf.each {|key, val| @conf[key]= val }
# Default directories # Default directories
@ -90,13 +90,7 @@ module LogAn::Inc
# Select-framework # Select-framework
@select = LogAn::Inc::Select.new @select = LogAn::Inc::Select.new
status = lambda do status # Init Status
@select.at Time.now+5, &status
LogAn::Logging.info :recv_lines => @logs.counter,
:connections => @serv && @serv.clients.map {|cl| cl.sock.peeraddr }
@conf[:stores].each {|key, db| db.flush!}
end
status.call
# Prepare Inc-server - create server # Prepare Inc-server - create server
@serv = LogAn::Inc::Server.new :sock => TCPServer.new( *@conf[:server]), @serv = LogAn::Inc::Server.new :sock => TCPServer.new( *@conf[:server]),
@ -112,6 +106,13 @@ module LogAn::Inc
raise $! raise $!
end end
def status
LogAn::Logging.info :recv_lines => @logs.counter,
:connections => @serv && @serv.clients.map {|cl| cl.sock.peeraddr }
@conf[ :stores].each {|key, db| db.flush!}
@select.at Time.now+5, &status
end
# Will be called at exit. Will close all opened BDB::Env # Will be called at exit. Will close all opened BDB::Env
def at_exit def at_exit
LogAn::Logging.info :at_exit LogAn::Logging.info :at_exit
@ -121,7 +122,7 @@ module LogAn::Inc
# Shutdown Server cleanly. First shutdown TCPServer. # Shutdown Server cleanly. First shutdown TCPServer.
def shutdown signal = nil def shutdown signal = nil
LogAn::Logging.info :signal, signal, Signal[signal] if signal LogAn::Logging.info :signal, signal, Signal[ signal] if signal
@serv.close @serv.close
exit 0 exit 0
end end