Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ruby日志文件行为_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails ruby日志文件行为

Ruby on rails ruby日志文件行为,ruby-on-rails,ruby,Ruby On Rails,Ruby,当我使用这个脚本时,它工作得很好 require 'logger' class Logging < Logger log = Logger.new "sam.txt" log.warn "samarth" end 现在我想创建一个继承logger的类,我在所有其他应用程序中使用该脚本,但它会生成一些不同的输出 require 'date' require 'logger' class Logging < Logger def initialize

当我使用这个脚本时,它工作得很好

require 'logger'

class Logging < Logger
    log = Logger.new "sam.txt"
    log.warn "samarth"
end
现在我想创建一个继承logger的类,我在所有其他应用程序中使用该脚本,但它会生成一些不同的输出

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
而输出就像

# 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 
# Logfile created on Thu Sep 20 12:03:20 +0530 2012 by /
samarth global
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