Ruby 记录器文件行为



当我使用此脚本时,它工作正常

require 'logger'
class Logging < Logger
    log = Logger.new "sam.txt"
    log.warn "samarth"
end

日志文件的输出以这种方式出现

# Logfile created on Thu Sep 20 12:01:26 +0530 2012 by /
W, [2012-09-20T12:01:44.402915 #7553]  WARN -- : asasa

现在我想创建一个继承记录器的类,并且我在所有其他脚本中使用该脚本,但它会产生一些不同的输出

require 'date'
require 'logger'
class Logging < Logger
    def initialize 
      @date = Time.now.strftime("20%y-%m-%d").to_s
      @time = Time.now.strftime("%X")
      @file_name = @date+"_"+@time+ " log.txt"
      @file_name_path = '/cmf/samnew/build/Logs/'+@file_name
    end
    def createfile
      $log1 = Logger.new(@file_name_path)
      return $log1 
    end
end

我正在下面的脚本中实现此脚本

require '/cmf/samnew/build/Controller/logging'

class Controller
    #Generating log file
    log = Logging.new
    log1 =  log.createfile
    log1.warn "samarth global"
end

输出就像

# Logfile created on Thu Sep 20 12:03:20 +0530 2012 by /
samarth global

那么这段代码有什么问题,或者我应该怎么做才能创建像上面这样的输出

可能您加载的 gem 之一弄乱了全局格式字符串。

尝试定义您想要的格式

def createfile 
  $log1 = Logger.new(@file_name_path) 
  $log1.formatter = proc do |severity, datetime, progname, msg| 
    "#{severity[0]}, [#{datetime} ##{$$}] #{severity} --> #{msg} n"
  end
  $log1  
end 

最新更新