2

カスタム ログ メッセージだけでなく、stdout にあるすべてのログ情報を含むカスタム ログ ファイルを Padrino 内に作成する必要があります。カスタム ログ ファイルを作成することはできましたが、stdout ファイル (development.log、production.log など) は、ログ ステートメントが含まれたまま作成されます。これらの行を boot.rb ファイルに入れてみましたが、どれもうまくいかないようです:

Padrino::Logger::Config[:development][:stream] = :to_file

Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :to_file }

Padrino::Logger::Config[:development][:stream] = :null

Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :null}

Padrino の開発コマンドロガーのドキュメントを見てきましたが、役に立ちませんでした。

役立つ場合、これはカスタム ログ ファイルを生成しているコードです。(このコードを実行するかどうかにかかわらず、stdout ファイルは作成され続けます):

log_path = File.join(custom_log_path, 'My Service')

FileUtils.mkdir_p log_path
log_file_path = File.join(log_path, "MyService_#{current_date_time_formatted}.log")
logger = File.open(log_file_path, "a+")

if defined?(PADRINO_ENV) && PADRINO_ENV == 'production'
  $stdout.reopen(logger)
  $stderr.reopen(logger)
end

どんな助けでも大歓迎です!

4

1 に答える 1

1

これを行うことができるはずです:

Padrino::Logger::Config[:development][:stream] = logger
# or
Padrino::Logger::Config[:production][:stream] = logger

を定義した後loggerconfig[:stream]キーワードを受信しない場合は、Padrino::Logger渡されたものを出力ストリームとして使用します。

Padrino ロガーの詳細については、関連する Padrino Core コード、特にhttps://github.com/padrino/padrino-framework/blob/master/padrino-core/lib/padrino-core/logger.rbself.setup!を確認してください。

于 2013-07-09T19:45:21.903 に答える