首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将“put”命令输出重定向到日志文件

将“put”命令输出重定向到日志文件
EN

Stack Overflow用户
提问于 2008-10-22 04:46:53
回答 4查看 24.1K关注 0票数 18

我正在使用守护进程gem在Ruby中创建一个守护进程。我想将守护进程的输出添加到日志文件中。我想知道将puts从控制台重定向到日志文件的最简单方法是什么。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-22 06:26:33

我应该推荐使用ruby logger,它比put更好,你可以有多个日志级别,你可以打开/关闭: debug,warn,info,error等。

代码语言:javascript
复制
 logger = Logger.new(STDOUT)
 logger = Logger.new("/var/log/my-daemon.log")

我使用runit包来管理ruby服务,它有svlogd,它会将守护进程的输出重定向到日志文件中,下面是logger进程的运行脚本:

代码语言:javascript
复制
#!/bin/sh
set -e

LOG=/var/log/my-daemon

test -d "$LOG" || mkdir -p -m2750 "$LOG" && chown nobody:adm "$LOG"
exec chpst -unobody svlogd -tt "$LOG"
票数 13
EN

Stack Overflow用户

发布于 2010-03-20 04:36:55

如果您需要同时捕获STDERR和STDOUT,并且不想求助于日志记录,下面是一个改编自this post的简单解决方案:

代码语言:javascript
复制
$stdout.reopen("my.log", "w")
$stdout.sync = true
$stderr.reopen($stdout)
票数 39
EN

Stack Overflow用户

发布于 2008-10-22 04:55:37

试一试

代码语言:javascript
复制
$stdout = File.new( '/tmp/output', 'w' )

要恢复,请执行以下操作:

代码语言:javascript
复制
$stdout = STDOUT
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/224512

复制
相关文章

相似问题

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