Class: AlWorker::StdoutTrap

Inherits:
Object
  • Object
show all
Defined in:
lib/al_worker.rb

Overview

Note:

標準出力、標準エラー出力のトラップ

stdout, stderrをログに記録するための機能を実装する。

Instance Method Summary collapse

Constructor Details

#initialize(severity) ⇒ StdoutTrap

Returns a new instance of StdoutTrap.



896
897
898
899
# File 'lib/al_worker.rb', line 896

def initialize( severity )
  @severity = severity
  @buffer = ""
end

Instance Method Details

#<<(arg) ⇒ Object



917
918
919
920
# File 'lib/al_worker.rb', line 917

def <<( arg )
  write( arg )
  return self
end

#flushObject



922
923
924
925
926
# File 'lib/al_worker.rb', line 922

def flush()
  return  if @buffer.empty?
  AlWorker.log( @buffer, @severity )
  @buffer.clear
end

#write(s) ⇒ Object



901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
# File 'lib/al_worker.rb', line 901

def write( s )
  idx_cr = s.rindex("\n")
  if !idx_cr
    @buffer << s
    return
  end

  @buffer << s[0, idx_cr]
  AlWorker.log( @buffer, @severity )
  @buffer.clear

  if s.length != idx_cr + 1
    @buffer << s[idx_cr + 1, s.length - idx_cr - 1]
  end
end