2011-11-07 42 views
0

下面的代碼保存爲logger.rb,然後加入該文件到腳本需要我創造的Watir腳本日誌文件,但我收到錯誤消息

require "log4r" 
include Log4r 

$mylog = Logger.new 'mylog' 
$mylog.outputters = Outputter.stdout 
$file = FileOutputter.new(
'fileOutputter', :filename => 'D:\WATIRScript\Log\filename',:trunc => false) 
$format = PatternFormatter.new(:pattern => "[%l] %d :: %m") 

$file.formatter = $format 
# log level order is DEBUG < INFO < WARN < ERROR < FATAL 
$mylog.level = Log4r::INFO 
$mylog.add($file) 

獲得以下錯誤,當我運行該腳本

D:/logger.rb:4:in `<top (required)>': undefined local variable or method `Outputter' for main:Object (NameError) 
from C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from C:/ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 

回答

0

我沒有看到你的log4r.yml配置文件。並從錯誤消息中,我認爲你的配置文件包含問題。

這裏是供您參考配置文件,注意「輸出器」部分:

# save this file as: log4r.yml 
log4r_config: 

    # define all loggers ... 
    loggers: 
    - name  : production 
     level  : WARN 
     trace  : 'false' 
     outputters : 
     - datefile 
    - name  : development 
     level  : DEBUG 
     trace  : 'true' 
     outputters : 
     - datefile 

    # define all outputters (incl. formatters) 
    outputters: 
    - type: DateFileOutputter 
    name: datefile 
    dirname: "log" # make sure this folder exists 
    file: "my_log" # this will be overrided by rails' config. 
    formatter: 
     date_pattern: '%H:%M:%S' 
     pattern  : '%d %l: %m ' 
     type  : PatternFormatter 

你可以使用這個配置文件是這樣的:

require 'log4r' 
require 'log4r/yamlconfigurator' 
require 'log4r/outputter/datefileoutputter' 
include Log4r 

log4r_config= YAML.load_file(File.join(File.dirname(__FILE__),"log4r.yml")) 
YamlConfigurator.decode_yaml(log4r_config['log4r_config']) 
logger = Log4r::Logger["development"] 
logger.debug "hi there, see me ? " 

,你會得到log4r的信息。

請參閱Rails環境中的此鏈接:How to configure Log4r with Rails 3.0.x?

相關問題