1 #!/usr/local/bin/ruby
\r
2 # -*- coding: utf-8 -*-
\r
6 #Autohr:: Kureha Hisame (http://lunardial.sakura.ne.jp/)
\r
8 #Copyright:: Copyright 2013 Kureha Hisame (http://lunardial.sakura.ne.jp/)
\r
17 @@max_log_size = 10 * 1024 * 1024
\r
19 def self.get_logger(script_name = "", log_dir = "", release_flag = false)
\r
20 if script_name.empty?
\r
21 log_filename = "#{log_dir}/default.log"
\r
22 log_filename_bk = "#{log_dir}/default.log.bk.log"
\r
24 log_filename = "#{log_dir}/" + File.basename(script_name, ".*") + ".log"
\r
25 log_filename_bk = "#{log_dir}/" + File.basename(script_name, ".*") + ".bk.log"
\r
27 if File.exist?(log_filename)
\r
28 status = File::stat(log_filename)
\r
29 if status.size > @@max_log_size
\r
30 File.rename(log_filename, log_filename_bk)
\r
34 logger = Object::Logger.new(log_filename)
\r
36 if release_flag == true
\r
37 logger.level = Object::Logger::ERROR
\r
39 logger.level = Object::Logger::DEBUG
\r
48 # テンプレートファイル(*.erb)を読み込み、管理するクラスです
\r
52 # _template_ :: テンプレートファイル(*.erb)のパス
\r
53 # _binding_ :: binding変数
\r
54 def initialize(template, binding)
\r
55 @erb = ERB.new(myopen(template, "r:utf-8") {|f| f.read}, nil, "-")
\r
59 # テンプレートファイルの文字列を返却するメソッドです
\r
61 @erb.result(@binding)
\r
68 # 基本クラスのオーバーライドを行います
\r
72 # ruby-1.9.x以降ではファイルを開いた際、エンコードの指定を行わないとエラーの原因になります。
\r
73 # ただしruby-1.8.6以前はエンコードの指定に対応していないため、独自メソッドを定義してファイルの入出力を行います。
\r
75 # _arg[0]_ :: 入出力を行うファイルのパス
\r
76 # _arg[1]_ :: モードの指定。例 : w:utf-8(書き込みモード・UTF-8エンコードでファイルを開く)
\r
82 arg[1] = mode[/[^:]+/] if RUBY_VERSION < "1.8.7" && mode.include?(':')
\r
83 rdonly_p = /\A[^:]*[wa+]/ !~ mode
\r
85 rdonly_p = !(mode & (IO::WRONY | IO::RDWR))
\r
88 f.flock(rdonly_p ? File::LOCK_SH : File::LOCK_EX)
\r