2012年2月14日

[ruby-list:48624] Re: loggerメソッドのサブメソッド内での名前空間指定

三輪です。

Tsuji様ご指摘のとおりの対処で解決しました。
グローバル変数として「$log」と宣言し、プログラム内では「$log」として参照すると、

D, [2012-02-14T21:40:36.461517 #745] DEBUG -- : debug
Hello
D, [2012-02-14T21:40:36.462038 #745] DEBUG -- : inside method1


のように、所期の動作をさせることができました。

同じことで躓いた方が本スレッドを参照された場合に備え、解決したコード例全文を掲載しておきます。

(ここから)
   1 require 'logger'
2 $log = Logger.new(STDOUT)
3 $log.level = Logger::DEBUG
4
5 $log.debug("debug")
6
7
8 def method1
9
10 print("Hello\n")
11 $log.debug("inside method1")
12
13 end
14
15
16 method1

(ここまで)

ありがとうございました。

2012年2月14日21:11 Kei Tsuji <ktsujister@xxxxx>:
> From: MIWA Yoshiko <waruiko.miwa@xxxxx>
> Subject: [ruby-list:48621] loggerメソッドのサブメソッド内での名前空間指定
> Date: Tue, 14 Feb 2012 20:38:56 +0900
>
>> というエラーが出ます。
>> エラーになる理由と、解決方法を教えていただけないでしょうか。
>> よろしくお願いいたします。
>
> スコープの問題です。
> http://www.namaraii.com/rubytips/?%CA%D1%BF%F4%A4%C8%A5%B9%A5%B3%A1%BC%A5%D7
>
> $log = Logger.new(STDOUT)
> として宣言して、
> $log.debug("inside method1")
> として使用すれば解決します。
>
> --
> ktsuji

--
Yoshiko Miwa waruiko.miwa@xxxxx


投稿者 xml-rpc : 2012年2月14日 21:45
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/108616
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。