alworker:ロギング
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| alworker:ロギング [2014/07/18 10:23] – 外部編集 127.0.0.1 | alworker:ロギング [2026/06/17 14:33] (現在) – [アレンジ] hirohito | ||
|---|---|---|---|
| 行 9: | 行 9: | ||
| ===== ログの記録 ===== | ===== ログの記録 ===== | ||
| - | <code ruby> | + | <code ruby sample_log.rb> |
| + | # | ||
| + | |||
| + | require " | ||
| class Worker1 < AlWorker | class Worker1 < AlWorker | ||
| - | def func1() | + | def idle_task() |
| - | log( "Info level log" ) | + | log(" |
| - | log( " | + | log(" |
| - | log( " | + | log(" |
| + | raise "User runtime error." | ||
| rescue =>ex | rescue =>ex | ||
| log( ex ) | log( ex ) | ||
| - | |||
| end | end | ||
| end | end | ||
| + | |||
| + | worker1 = Worker1.new(" | ||
| + | worker1.run(: | ||
| </ | </ | ||
| + | 実行結果 | ||
| + | < | ||
| + | cat / | ||
| + | # Logfile created on 2026-06-17 14:27:33 +0900 by logger.rb/ | ||
| + | I, [2026-06-17T14: | ||
| + | I, [2026-06-17T14: | ||
| + | F, [2026-06-17T14: | ||
| + | I, [2026-06-17T14: | ||
| + | E, [2026-06-17T14: | ||
| + | E, [2026-06-17T14: | ||
| + | sample_log.rb: | ||
| + | / | ||
| + | |||
| + | I, [2026-06-17T14: | ||
| + | </ | ||
| ===== 解説 ===== | ===== 解説 ===== | ||
| 行 34: | 行 56: | ||
| * :debug | * :debug | ||
| - | 第3引数に、ログ文字列に追加するプログラム名を指定できます。 | + | 第3引数に、ログ文字列に追加するプログラム名を指定できます。\\ |
| - | + | 第1引数に例外オブジェクトを指定した場合、例外内容とバックトレースが記録されます。\\ | |
| - | 第一引数に例外オブジェクトを指定した場合、例外内容とバックトレースが記録されます。 | + | デフォルトで、ログサイズ 1048576バイト以上になるとログをローテートし、過去ログを3代保存します。\\ |
| - | + | ||
| - | デフォルトで、ログサイズ 1048576バイト以上になるとログをローテートし、過去ログを3代保存します。 | + | |
| (注意)コンストラクタでは、ログ記録ができません。 | (注意)コンストラクタでは、ログ記録ができません。 | ||
| 行 48: | 行 67: | ||
| <code ruby> | <code ruby> | ||
| - | def initialize() | + | def initialize(*arg) |
| @log_filename = "/ | @log_filename = "/ | ||
| end | end | ||
| 行 61: | 行 80: | ||
| </ | </ | ||
| - | ログレベルの変更は、以下の通り行うことができます。 | + | 記録するログレベルの変更は、以下の通り行うことができます。\\ |
| + | デフォルトでは、INFO もしくは DEBUG です。 | ||
| <code ruby> | <code ruby> | ||
| 行 73: | 行 93: | ||
| <code ruby> | <code ruby> | ||
| - | def initialize() | + | def initialize(*arg) |
| - | @@log = Logger.new( "/ | + | @@log = Logger.new("/ |
| @@log.level = Logger:: | @@log.level = Logger:: | ||
| super | super | ||
| 行 80: | 行 100: | ||
| </ | </ | ||
| - | 応用例として、Syslogでログを取得することもできます。 | + | Syslogでログを取得する場合 |
| <code ruby> | <code ruby> | ||
| require " | require " | ||
| - | def initialize() | + | def initialize(*arg) |
| super | super | ||
| @@log = Syslog:: | @@log = Syslog:: | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | STDERRへログを表示する場合 | ||
| + | <code ruby> | ||
| + | def initialize(*arg) | ||
| + | @@log = Logger.new(STDERR) | ||
| + | @@log.level = Logger:: | ||
| + | super | ||
| end | end | ||
| </ | </ | ||
| 行 95: | 行 123: | ||
| <code ruby> | <code ruby> | ||
| - | def initialize() | + | def initialize(*arg) |
| super | super | ||
| @@log = false | @@log = false | ||
alworker/ロギング.1405646580.txt.gz · 最終更新: by 127.0.0.1
