ユーザ用ツール

サイト用ツール


alworker:ロギング

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
alworker:ロギング [2014/07/18 10:23] – 外部編集 127.0.0.1alworker:ロギング [2026/06/17 14:33] (現在) – [アレンジ] hirohito
行 9: 行 9:
 ===== ログの記録 ===== ===== ログの記録 =====
  
-<code ruby>+<code ruby sample_log.rb> 
 +#!/usr/bin/env ruby 
 + 
 +require "al_worker" 
 class Worker1 < AlWorker class Worker1 < AlWorker
-  def func1() +  def idle_task() 
-    log( "Info level log" ) +    log("Info level log" ) 
-    log( "Specify severity", :fatal ) +    log("Specify severity", :fatal ) 
-    log( "Specify progname", :info, "PROGNAME" )+    log("Specify progname", :info, "PROGNAME" ) 
 +    raise "User runtime error."
  
   rescue =>ex   rescue =>ex
     log( ex )     log( ex )
- 
   end   end
 end end
 +
 +worker1 = Worker1.new("sample_log")
 +worker1.run(:exit_idle_task)
 </code> </code>
  
 +実行結果
 +<code>
 +cat /tmp/sample_log.log
 +# Logfile created on 2026-06-17 14:27:33 +0900 by logger.rb/v1.6.4
 +I, [2026-06-17T14:27:33.078994 #22627]  INFO -- sample_log: start
 +I, [2026-06-17T14:27:33.079165 #22627]  INFO -- : Info level log
 +F, [2026-06-17T14:27:33.079220 #22627] FATAL -- : Specify severity
 +I, [2026-06-17T14:27:33.079245 #22627]  INFO -- PROGNAME: Specify progname
 +E, [2026-06-17T14:27:33.079280 #22627] ERROR -- : RuntimeError / User runtime error.
 +E, [2026-06-17T14:27:33.079312 #22627] ERROR -- : BACKTRACE:
 +  sample_log.rb:10:in 'Worker1#idle_task'
 +  /Users/hirohito/tst/alone-release3.9/alone/lib/al_worker.rb:754:in 'block in AlWorker#run'
 +
 +I, [2026-06-17T14:27:33.079496 #22627]  INFO -- sample_log: finish
 +</code>
  
 ===== 解説 ===== ===== 解説 =====
行 34: 行 56:
   * :debug   * :debug
  
-第3引数に、ログ文字列に追加するプログラム名を指定できます。 +第3引数に、ログ文字列に追加するプログラム名を指定できます。\\ 
- +1引数に例外オブジェクトを指定した場合、例外内容とバックトレースが記録されます。\\ 
-引数に例外オブジェクトを指定した場合、例外内容とバックトレースが記録されます。 +デフォルトで、ログサイズ 1048576バイト以上になるとログをローテートし、過去ログを3代保存します。\\
- +
-デフォルトで、ログサイズ 1048576バイト以上になるとログをローテートし、過去ログを3代保存します。 +
 (注意)コンストラクタでは、ログ記録ができません。 (注意)コンストラクタでは、ログ記録ができません。
  
行 48: 行 67:
  
 <code ruby> <code ruby>
-  def initialize()+  def initialize(*arg)
     @log_filename = "/var/log/prog.log"     @log_filename = "/var/log/prog.log"
   end   end
行 61: 行 80:
 </code> </code>
  
-ログレベルの変更は、以下の通り行うことができます。+記録するログレベルの変更は、以下の通り行うことができます。\\ 
 +デフォルトでは、INFO もしくは DEBUG です。
  
 <code ruby> <code ruby>
行 73: 行 93:
  
 <code ruby> <code ruby>
-  def initialize() +  def initialize(*arg
-    @@log = Logger.new( "/var/log/prog.log", 16 )+    @@log = Logger.new("/var/log/prog.log", 16 )
     @@log.level = Logger::DEBUG     @@log.level = Logger::DEBUG
     super     super
行 80: 行 100:
 </code> </code>
  
-応用例として、Syslogでログを取得することもできます。 +Syslogでログを取得する場合
 <code ruby> <code ruby>
 require "syslog/logger" require "syslog/logger"
  
-  def initialize()+  def initialize(*arg)
     super     super
     @@log = Syslog::Logger.new( @name )     @@log = Syslog::Logger.new( @name )
 +  end
 +</code>
 +
 +STDERRへログを表示する場合
 +<code ruby>
 +  def initialize(*arg)
 +    @@log = Logger.new(STDERR)
 +    @@log.level = Logger::DEBUG
 +    super
   end   end
 </code> </code>
行 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