登台和本地之间的输出到文件是不同的

时间:2013-09-27 15:12:45

标签: ruby-on-rails ruby ruby-on-rails-3

print将一些数据发送到自定义日志文件。这是我目前使用的代码:

  

print eco_logger.info(“Date:”+ Time.now.strftime(“%I:%M:%S”)+“|”+“User:”+ current_user.email.to_s()+“| “+”操作:编辑用户|用户:“+ @ user.first_name.to_s +”“+ @ user.last_name.to_s +”|电子邮件:“+ @ user.email.to_s)

在我当地的开发环境中,它运作良好。每个印刷品都会像以下一样换行:

log
log
log

但是,当我将应用程序推送到登台开发服务器时,日志开始打印如下:

logloglog

我也试过\n,看看是否有效;像这样:

  

print eco_logger.info(“\ nDate:”+ Time.now.strftime(“%I:%M:%S”)+“|”+“User:”+ current_user.email.to_s()+“ |“+”操作:编辑用户|用户:“+ @ user.first_name.to_s +”“+ @ user.last_name.to_s +”|电子邮件:“+ @ user.email.to_s)

在本地,它增加了另一个空间,所以事情是这样的:

log

log

log

在分期时,事情保持不变。


有人能够对这个问题有所了解吗?

2 个答案:

答案 0 :(得分:0)

为什么不使用内置的logger与复杂的print语句?

logger.debug "Person attributes hash: #{@person.attributes.inspect}"
logger.info "Processing the request..."
logger.fatal "Terminating application, raised unrecoverable error!!!"

答案 1 :(得分:0)

因此,假设您已将eco_logger设置为写入您自己的日志文件,则调用eco_logger.info应该足以在该文件中写入一行。

我完全不确定为什么你也使用print,这似乎是多余的,可能是问题的一部分。

你能解释一下为什么要同时使用它们吗?这样的print会将行打印到STDOUT,最后没有换行符(这是putsprint之间的差异)。

在开发过程中,您可能会看到eco_logger.info语句所写的内容,该语句将使用换行符写入eco_logger指定的文件。

但是,在暂存时,我认为您正在查看记录print输出到STDOUT的日志,其中不包括换行符。