class SysLogger

Constants

SEVERITY_MAP
VERSION

Attributes

facility[RW]
level[RW]
progname[RW]
sev_threshold[RW]
sev_threshold=[RW]

Public Class Methods

new(progname = nil, facility = nil, level = SysLogger::DEBUG) click to toggle source

ロガーインスタンスを生成します

引数

progname: ログに出力するプログラム名 facility: ファシリティ level : ログレベル(SysLogger::DEBUG, SysLogger::INFO, SysLogger::WARN, SysLogger::ERROR, SysLogger::FATAL, SysLogger::UNKNOWN)

# File lib/sys_logger.rb, line 38
def initialize(progname = nil, facility = nil, level = SysLogger::DEBUG)
  @progname, @facility, @level = progname, facility, level
  Syslog.open unless Syslog.opened?
end

Public Instance Methods

<<(message) click to toggle source

ログを出力します。 severityはUNKNOWN扱いになります。

引数

message: ログに出力するメッセージ

戻り値

self

# File lib/sys_logger.rb, line 52
def <<(message)
  add(UNKNOWN, message)
  self
end
add(severity, message = nil, progname = nil) { || ... } click to toggle source

メッセージをログに記録します。 ブロックを与えた場合はブロックを評価した返り値をメッセージとしてログに記録します。 ユーザがこのメソッドを直接使うことはあまりありません。

引数

severity: ログレベル。SysLogger クラスで定義されている定数を指定します。 この値がレシーバーに設定されているレベルよりも低い場合、 メッセージは記録されません。 message: ログに出力するメッセージを文字列か例外オブジェクトを指定します。 省略すると nil が用いられます。 progname: ログメッセージと一緒に記録するプログラム名を指定します。 省略すると nil が使用されますが、実際には内部で保持されている値が使用されます。

戻り値

true

# File lib/sys_logger.rb, line 68
def add(severity, message = nil, progname = nil)
  severity ||= UNKNOWN
  return true if severity < level
  progname ||= @progname
  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = @progname
    end
  end
  priority = SEVERITY_MAP[severity]
  priority |= facility if @facility
  progname = progname.to_s
  if progname.empty?
    Syslog.log(priority, '%s', message.to_s)
  else
    Syslog.log(priority, '%s: %s', progname, message.to_s)
  end
  true
end
Also aliased as: log
debug(progname = nil, &block) click to toggle source
DEBUG 情報を出力します。

詳細

ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。

引数

progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。

# File lib/sys_logger.rb, line 112
def debug(progname = nil, &block)  ; add(DEBUG  , nil, progname, &block);end
debug?() click to toggle source

現在の Logger オブジェクトが DEBUG 以上のログレベルのメッセージを記録するなら 真を返します。

# File lib/sys_logger.rb, line 93
def debug?; @level <= DEBUG; end
error(progname = nil, &block) click to toggle source
ERROR 情報を出力します。

詳細

ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。

引数

progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。

# File lib/sys_logger.rb, line 145
def error(progname = nil, &block)  ; add(ERROR  , nil, progname, &block);end
error?() click to toggle source

現在の Logger オブジェクトが ERROR 以上のログレベルのメッセージを記録するなら 真を返します。

# File lib/sys_logger.rb, line 99
def error?; @level <= ERROR; end
fatal(progname = nil, &block) click to toggle source
FATAL 情報を出力します。

詳細

ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。

引数

progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。

# File lib/sys_logger.rb, line 156
def fatal(progname = nil, &block)  ; add(FATAL  , nil, progname, &block);end
fatal?() click to toggle source

現在の Logger オブジェクトが FATAL 以上のログレベルのメッセージを記録するなら 真を返します。

# File lib/sys_logger.rb, line 101
def fatal?; @level <= FATAL; end
info(progname = nil, &block) click to toggle source
INFO 情報を出力します。

詳細

ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。

引数

progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。

# File lib/sys_logger.rb, line 123
def info(progname = nil, &block)   ; add(INFO   , nil, progname, &block);end
info?() click to toggle source

現在の Logger オブジェクトが INFO 以上のログレベルのメッセージを記録するなら 真を返します。

# File lib/sys_logger.rb, line 95
def info?;  @level <= INFO ; end
log(severity, message = nil, progname = nil)
Alias for: add
silence(temporary_level = ERROR) { |class.new(progname && dup, facility, temporary_level)| ... } click to toggle source

与えられたブロック内で一時的にログレベルを変更します。 ブロック引数には、ログレベルが変更されたロガーが渡されます。

引数

temporary_level: 一時的なログレベル

# File lib/sys_logger.rb, line 175
def silence(temporary_level = ERROR)
  yield self.class.new(@progname && @progname.dup, @facility, temporary_level)
end
unknown(progname = nil, &block) click to toggle source
UNKNOWN 情報を出力します。

詳細

ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。

引数

progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。

# File lib/sys_logger.rb, line 167
def unknown(progname = nil, &block); add(UNKNOWN, nil, progname, &block);end
warn(progname = nil, &block) click to toggle source
WARN 情報を出力します。

詳細

ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。

引数

progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。

# File lib/sys_logger.rb, line 134
def warn(progname = nil, &block)   ; add(WARN   , nil, progname, &block);end
warn?() click to toggle source

現在の Logger オブジェクトが WARN 以上のログレベルのメッセージを記録するなら 真を返します。

# File lib/sys_logger.rb, line 97
def warn?;  @level <= WARN ; end