[#48621] loggerメソッドのサブメソッド内での名前空間指定 — MIWA Yoshiko <waruiko.miwa@...>
三輪と申します。
4 messages
2012/02/14
[#48633] http.rb Segmentation fault — takeshi honda <moecho21@...>
Mechanizeを使ったhttp clientプログラムを書いています。
4 messages
2012/02/26
[ruby-list:48624] Re: loggerメソッドのサブメソッド内での名前空間指定
From:
MIWA Yoshiko <waruiko.miwa@...>
Date:
2012-02-14 12:45:01 UTC
List:
ruby-list #48624
三輪です。
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@gmail.com>:
> From: MIWA Yoshiko <waruiko.miwa@gmail.com>
> 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@gmail.com