我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
在分期时,事情保持不变。
有人能够对这个问题有所了解吗?
答案 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
,最后没有换行符(这是puts
和print
之间的差异)。
在开发过程中,您可能会看到eco_logger.info
语句所写的内容,该语句将使用换行符写入eco_logger
指定的文件。
但是,在暂存时,我认为您正在查看记录print
输出到STDOUT
的日志,其中不包括换行符。