当前位置:  开发笔记 > 运维 > 正文

在rails应用程序中使用syslog

如何解决《在rails应用程序中使用syslog》经验,为你挑选了1个好方法。

我想在我的rails应用程序中使用syslog.此博客文章概述了该过程:

    加入gem 'SyslogLogger'你的Gemfile

    添加require 'syslog_logger'到顶部config/environments/production.rb

    同时取消注释config.logger =同一文件中的行.

在生产箱中,我有4个使用乘客运行的轨道应用程序.如果我为所有4个应用程序切换到使用syslogger,那么我担心来自所有4个应用程序的日志消息将转到单个文件,并且日志消息将交错.当然,我可以使用splunk,但首先我想检查是否有可能为我的每个rails应用程序获取一个日志文件.这对我的情况来说是可取的.

那可能吗?



1> Troy Davis..:

@ cite的答案涵盖了区分应用程序的一个选项.但是,系统日志消息框架实际上有2个字段,使其更容易:hostnametag(更常见的并用作程序名称).

hostname系统syslog守护程序在将消息转发到集中式服务器之前设置.它对于同一系统上的所有应用程序都是相同的,但是当您经过1台服务器时可能会很方便.

更有趣的是tag.您的应用程序定义tag它何时实例化SyslogLogger.例如:

SyslogLogger.new('app1')

logger类将作为syslogd发送到系统app1,并且出现在本地日志文件和任何远程syslog目标中(无需修改日志消息本身).默认是rails.所有现代syslog守护进程都可以基于tag; 请参阅program()syslog-ng和$programnamersyslog.

另外,值得注意的SyslogLogger是基本上包装C openlog()syslog()函数,所以基本上所有的日志后配置都发生在系统守护进程上.通常这是可取的,但有时您可能希望您的Rails应用程序直接登录到特定目标(例如,简化自动部署,更改不允许的属性syslog(),或在无法访问系统守护程序的环境中运行).

我们遇到了几个这样的情况,并做了一个直接Logger替换,自己生成UDP数据包.该remote_syslog_logger宝石是在GitHub上.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有