1

これは、ステータスをログに記録するために使用しているルビースクリプトです。

require 'logger'

log = Logger.new( 'log.txt', 'daily' )

log.debug "Once the log becomes at least one"
log.debug "day old, it will be renamed and a"
log.debug "new log.txt file will be created."

今、私はロガーを含めたい新しいルビーファイルを作りたいですそれはこのようにすることができます

module Logging

  def logger
    Logging.logger
  end

  def self.logger
    @logger ||= Logger.new(STDOUT)
  end

end

しかし、私はこれを理解することができないので、誰でもそれを説明することができます。

私の要件は、ロガーをモジュールに入れて、ログファイルにログインするよりもすべてのファイルにそれを含めたいルビースクリプトファイルがたくさんあるようなものです。それは情報または他のものである可能性があることを警告することができます。

4

2 に答える 2

0

あなたの質問から私が集めることができるのは、コードが機能することです...あなたはそれが何をするのか混乱しています...それが正しければ、inculde Loggingあなたがあなたのクラスのいずれかにいるとき、クラスメソッドのどこからでもそれを呼び出すlogger.log("This is a log message")でしょうそのメッセージを、スクリプトを開始したコンソールに記録します。

それはあなたの質問に答えますか?

于 2012-09-13T07:21:19.443 に答える
0

より良い代替案は次のとおりです。

module Logging

def logger
@logger ||= Logger.new(STDOUT)
end

end

そして、このように使用します

class MyLoggingClient
include Logging

#Now you have access to the method `logger` and the instance variable `@logger`.

end
于 2012-09-13T07:23:46.327 に答える