Class: SysLogger
- Inherits:
-
Object
- Object
- SysLogger
- Includes:
- Logger::Severity, Syslog::Constants
- Defined in:
- lib/sys_logger.rb
Constant Summary collapse
- VERSION =
'1.0.0'
- SEVERITY_MAP =
{ DEBUG => Syslog::LOG_DEBUG, INFO => Syslog::LOG_INFO, WARN => Syslog::LOG_WARNING, ERROR => Syslog::LOG_ERR, FATAL => Syslog::LOG_CRIT, UNKNOWN => Syslog::LOG_ALERT, }
Instance Attribute Summary collapse
-
#facility ⇒ Object
Returns the value of attribute facility.
-
#level ⇒ Object
(also: #sev_threshold)
Returns the value of attribute level.
-
#progname ⇒ Object
Returns the value of attribute progname.
Instance Method Summary collapse
-
#<<(message) ⇒ Object
ログを出力します。 severityはUNKNOWN扱いになります。.
-
#add(severity, message = nil, progname = nil) ⇒ Object
(also: #log)
メッセージをログに記録します。 ブロックを与えた場合はブロックを評価した返り値をメッセージとしてログに記録します。 ユーザがこのメソッドを直接使うことはあまりありません。 .
-
#debug(progname = nil, &block) ⇒ Object
DEBUG 情報を出力します。.
-
#debug? ⇒ Boolean
現在の Logger オブジェクトが DEBUG 以上のログレベルのメッセージを記録するなら 真を返します。.
-
#error(progname = nil, &block) ⇒ Object
ERROR 情報を出力します。.
-
#error? ⇒ Boolean
現在の Logger オブジェクトが ERROR 以上のログレベルのメッセージを記録するなら 真を返します。.
-
#fatal(progname = nil, &block) ⇒ Object
FATAL 情報を出力します。.
-
#fatal? ⇒ Boolean
現在の Logger オブジェクトが FATAL 以上のログレベルのメッセージを記録するなら 真を返します。.
-
#info(progname = nil, &block) ⇒ Object
INFO 情報を出力します。.
-
#info? ⇒ Boolean
現在の Logger オブジェクトが INFO 以上のログレベルのメッセージを記録するなら 真を返します。.
-
#initialize(progname = nil, facility = nil, level = SysLogger::DEBUG) ⇒ SysLogger
constructor
ロガーインスタンスを生成します.
-
#silence(temporary_level = ERROR) {|self.class.new(@progname && @progname.dup, @facility, temporary_level)| ... } ⇒ Object
与えられたブロック内で一時的にログレベルを変更します。 ブロック引数には、ログレベルが変更されたロガーが渡されます。.
-
#unknown(progname = nil, &block) ⇒ Object
UNKNOWN 情報を出力します。.
-
#warn(progname = nil, &block) ⇒ Object
WARN 情報を出力します。.
-
#warn? ⇒ Boolean
現在の Logger オブジェクトが WARN 以上のログレベルのメッセージを記録するなら 真を返します。.
Constructor Details
#initialize(progname = nil, facility = nil, level = SysLogger::DEBUG) ⇒ SysLogger
ロガーインスタンスを生成します
引数
progname: ログに出力するプログラム名 facility: ファシリティ level : ログレベル(SysLogger::DEBUG, SysLogger::INFO, SysLogger::WARN, SysLogger::ERROR, SysLogger::FATAL, SysLogger::UNKNOWN)
38 39 40 41 |
# 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 |
Instance Attribute Details
#facility ⇒ Object
Returns the value of attribute facility.
27 28 29 |
# File 'lib/sys_logger.rb', line 27 def facility @facility end |
#level ⇒ Object Also known as: sev_threshold
Returns the value of attribute level.
27 28 29 |
# File 'lib/sys_logger.rb', line 27 def level @level end |
#progname ⇒ Object
Returns the value of attribute progname.
27 28 29 |
# File 'lib/sys_logger.rb', line 27 def progname @progname end |
Instance Method Details
#<<(message) ⇒ Object
ログを出力します。 severityはUNKNOWN扱いになります。
引数
message: ログに出力するメッセージ
戻り値
self
52 53 54 55 |
# File 'lib/sys_logger.rb', line 52 def <<() add(UNKNOWN, ) self end |
#add(severity, message = nil, progname = nil) ⇒ Object Also known as: log
メッセージをログに記録します。 ブロックを与えた場合はブロックを評価した返り値をメッセージとしてログに記録します。 ユーザがこのメソッドを直接使うことはあまりありません。
引数
severity: ログレベル。SysLogger クラスで定義されている定数を指定します。 この値がレシーバーに設定されているレベルよりも低い場合、 メッセージは記録されません。 message: ログに出力するメッセージを文字列か例外オブジェクトを指定します。 省略すると nil が用いられます。 progname: ログメッセージと一緒に記録するプログラム名を指定します。 省略すると nil が使用されますが、実際には内部で保持されている値が使用されます。
戻り値
true
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/sys_logger.rb', line 68 def add(severity, = nil, progname = nil) severity ||= UNKNOWN return true if severity < level progname ||= @progname if .nil? if block_given? = yield else = progname progname = @progname end end priority = SEVERITY_MAP[severity] priority |= facility if @facility progname = progname.to_s if progname.empty? Syslog.log(priority, '%s', .to_s) else Syslog.log(priority, '%s: %s', progname, .to_s) end true end |
#debug(progname = nil, &block) ⇒ Object
DEBUG 情報を出力します。
詳細
ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。
引数
progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。
112 |
# File 'lib/sys_logger.rb', line 112 def debug(progname = nil, &block) ; add(DEBUG , nil, progname, &block);end |
#debug? ⇒ Boolean
現在の Logger オブジェクトが DEBUG 以上のログレベルのメッセージを記録するなら 真を返します。
93 |
# File 'lib/sys_logger.rb', line 93 def debug?; @level <= DEBUG; end |
#error(progname = nil, &block) ⇒ Object
ERROR 情報を出力します。
詳細
ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。
引数
progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。
145 |
# File 'lib/sys_logger.rb', line 145 def error(progname = nil, &block) ; add(ERROR , nil, progname, &block);end |
#error? ⇒ Boolean
現在の Logger オブジェクトが ERROR 以上のログレベルのメッセージを記録するなら 真を返します。
99 |
# File 'lib/sys_logger.rb', line 99 def error?; @level <= ERROR; end |
#fatal(progname = nil, &block) ⇒ Object
FATAL 情報を出力します。
詳細
ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。
引数
progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。
156 |
# File 'lib/sys_logger.rb', line 156 def fatal(progname = nil, &block) ; add(FATAL , nil, progname, &block);end |
#fatal? ⇒ Boolean
現在の Logger オブジェクトが FATAL 以上のログレベルのメッセージを記録するなら 真を返します。
101 |
# File 'lib/sys_logger.rb', line 101 def fatal?; @level <= FATAL; end |
#info(progname = nil, &block) ⇒ Object
INFO 情報を出力します。
詳細
ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。
引数
progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。
123 |
# File 'lib/sys_logger.rb', line 123 def info(progname = nil, &block) ; add(INFO , nil, progname, &block);end |
#info? ⇒ Boolean
現在の Logger オブジェクトが INFO 以上のログレベルのメッセージを記録するなら 真を返します。
95 |
# File 'lib/sys_logger.rb', line 95 def info?; @level <= INFO ; end |
#silence(temporary_level = ERROR) {|self.class.new(@progname && @progname.dup, @facility, temporary_level)| ... } ⇒ Object
与えられたブロック内で一時的にログレベルを変更します。 ブロック引数には、ログレベルが変更されたロガーが渡されます。
引数
temporary_level: 一時的なログレベル
175 176 177 |
# 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) ⇒ Object
UNKNOWN 情報を出力します。
詳細
ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。
引数
progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。
167 |
# File 'lib/sys_logger.rb', line 167 def unknown(progname = nil, &block); add(UNKNOWN, nil, progname, &block);end |
#warn(progname = nil, &block) ⇒ Object
WARN 情報を出力します。
詳細
ブロックを与えなかった場合は、progname をメッセージとしてログを出力します。 ブロックを与えた場合は、ブロックを評価した結果をメッセージとして ログを出力します。 引数とブロックを同時に与えた場合は、progname をプログラム名、ブロックを評価した 結果をメッセージとしてログを出力します。
引数
progname: ブロックを与えない場合は、メッセージとして文字列または例外オブジェクトを指定します。 ブロックを与えた場合は、プログラム名を文字列として与えます。
134 |
# File 'lib/sys_logger.rb', line 134 def warn(progname = nil, &block) ; add(WARN , nil, progname, &block);end |
#warn? ⇒ Boolean
現在の Logger オブジェクトが WARN 以上のログレベルのメッセージを記録するなら 真を返します。
97 |
# File 'lib/sys_logger.rb', line 97 def warn?; @level <= WARN ; end |