首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用WEBrick日志写入文件

使用WEBrick日志写入文件
EN

Stack Overflow用户
提问于 2014-09-19 01:55:29
回答 1查看 1.9K关注 0票数 0

我已经编写了下面的webrick服务器。它成功写入了2个日志文件。

我想把r10kstatus命令的输出写到一个不同的日志文件中,但是我有点摸不着头脑。

代码语言:javascript
复制
#!/usr/bin/env ruby
require 'webrick'


server = WEBrick::HTTPServer.new(
    :Port => ARGV.first,
    :Logger => WEBrick::Log.new("webrick.log",WEBrick::Log::INFO),
    :AccessLog => [[File.open("webrick_access.log",'w'),WEBrick::AccessLog::COMBINED_LOG_FORMAT]]
)

server.mount_proc '/' do |req, res|

  r10kstatus = `sudo r10k deploy environment -pv 2>&1`
  log_foo = WEBrick::Log.new("r10k_deploy.log",WEBrick::Log::DEBUG)
  File.write(log_foo, r10kstatus)

end
trap 'INT' do
  server.shutdown
end
server.start

http://www.ruby-doc.org/stdlib-2.0/libdoc/webrick/rdoc/WEBrick/BasicLog.html#method-i-log

这3条线路不工作

代码语言:javascript
复制
  r10kstatus = `sudo r10k deploy environment -pv 2>&1`
  log_foo = WEBrick::Log.new("r10k_deploy.log",WEBrick::Log::DEBUG)
  File.write(log_foo, r10kstatus)

如何将r10kstatus的标准输出写入日志文件?

EN

回答 1

Stack Overflow用户

发布于 2014-09-19 02:11:19

我想通了。

公共类方法和公共实例方法是有区别的。

我必须创建一个对象,然后针对该对象调用调试实例方法

完整的解决方案:

代码语言:javascript
复制
#!/usr/bin/env ruby
require 'webrick'


server = WEBrick::HTTPServer.new(
  :Port => ARGV.first,
  :Logger => WEBrick::Log.new("r10k_gitlab_webhook.log",WEBrick::Log::INFO),
  :AccessLog => [[File.open("r10k_gitlab_webhook.log",'w'),WEBrick::AccessLog::COMBINED_LOG_FORMAT]]
)

r10k_comman_log = WEBrick::Log.new('foo.log',WEBrick::Log::DEBUG)
r10k_comman_log.warn( 'hi' )

server.mount_proc '/' do |req, res|

  r10kstatus = `whoami`
  r10k_comman_log.debug( r10kstatus )
end

trap 'INT' do
  server.shutdown
end
server.start
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25919311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档