我和我的团队使用Ruby on Rails在Openshift pod中运行的应用程序。我们使用delayed_job来处理后台进程,对于delayed_job日志,应用程序将日志写入log/delayed_job.log
文件。但是,如果为应用程序创建了一个新的pod,pod将创建一个新文件。此外,公司使用Kibana来保存Openshift pod中的每个日志。
到目前为止,我们尝试将此代码放在delayed_job_config.rb
中Delayed::Worker.logger = Logger.new(STDERR)
要为延迟作业旁边的另一个进程写入日志,以便在Openshift pod日志中写入日志,我们使用以下代码,例如:Rails.logger.info "Result: #{ldap.get_operation_result.code}"
但是,delayed_job日志仍不会显示在窗格的“日志”选项卡中(以便日志显示在Kibana中)
目标是在Openshift pod的日志选项卡中写入日志。
任何帮助都是感激不尽的。
最新消息:
我们尝试将Delayed::Worker.logger = Rails.logger
放入delayed_job_config.rb
中,但仍然不起作用
2条答案
按热度按时间j8ag8udp1#
如果它可能帮助任何人:
最后,我们屏蔽了与DelayedJobs ActiveRecord相关的日志,以便在delayed_job repo post周围播放,同时确保在发生错误时,我们可以恢复到以前的日志级别
在我们的容器中,我们跟踪实际延迟的作业日志文件,以输出实际的作业日志
tail -f/应用程序/日志/生产日志和
这不是最佳的,但至少,我们可以看到日志!
wfauudbj2#
一般情况下,从容器/pod的主进程写入STDOUT或STDERR的所有内容都显示在日志选项卡中。我猜您的问题是后台工作不在主进程中执行,因此不会显示在日志选项卡中。
例如,我们有一个应用程序,其中启动脚本正在另一个进程中执行实际工作。即使这个新进程记录到STDOUT,它也不会出现在日志选项卡中,因为OpenShift只显示主进程的日志,在我们的例子中,主进程是执行脚本的进程。