require 'logger' require 'fileutils' require 'pathname' require 'net/smtp' module RBatch class Log # @private @@FORMATTER = proc do |severity, datetime, progname, msg| head = "[#{datetime}] [" + sprintf("%-5s",severity) +"]" if msg.is_a? Exception "#{head} #{msg}\n" + msg.backtrace.map{|s| " [backtrace] #{s}"}.join("\n") + "\n" else "#{head} #{msg}\n" end end # @private @@STDOUT_FORMATTER = proc do |severity, datetime, progname, msg| head = "[" + sprintf("%-5s",severity) +"]" if msg.is_a? Exception "#{head} #{msg}\n" + msg.backtrace.map{|s| " [backtrace] #{s}"}.join("\n") + "\n" else "#{head} #{msg}\n" end end # @private @@LOG_LEVEL_MAP = { "debug" => Logger::DEBUG, "info" => Logger::INFO, "warn" => Logger::WARN, "error" => Logger::ERROR, "fatal" => Logger::FATAL } # @private @@def_vars # @private # @param [RBatch::Variables] v def Log.def_vars=(v) raise ArgumentError, "type mismatch: #{v} for #RBatch::Variables" if ! v.kind_of?(RBatch::Variables) @@def_vars=v end # @private # @return [RBatch::Variables] def Log.def_vars ; @@def_vars ; end # @private @@journal # @private # @param [RBatch::Journal] j def Log.journal=(j) ; @@journal=j ; end # @private @vars # @private @opt # @private @log # @private @stdout_log # External command wrapper # @option opt [String] :dir Output directory # @option opt [String] :name # Log file name. # Default is "_