當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby Logger類用法及代碼示例

本文簡要介紹ruby語言中 Syslog::Logger類 的用法。

Syslog::Logger 是一個 Logger work-alike,它通過係統日誌而不是文件記錄。您可以使用 Syslog::Logger 在多台機器之間聚合日誌。

默認情況下, Syslog::Logger 使用程序名稱 ‘ruby’,但這可以通過 Syslog::Logger.new 的第一個參數進行更改。

筆記!第一次初始化 Syslog::Logger 時隻能設置 Syslog::Logger 程序名。這是 Syslog::Logger 使用 syslog 方式的限製(在某些方麵,也是 syslog(3) 工作方式的限製)。在第一次初始化後嘗試更改 Syslog::Logger 的程序名稱將被忽略。

示例

以下將記錄到本地計算機上的 syslogd:

require 'syslog/logger'

log = Syslog::Logger.new 'my_program'
log.info 'this line will be logged via syslog(3)'

還可以設置設施以指定將使用的設施級別:

log.info 'this line will be logged using Syslog default facility level'

log_local1 = Syslog::Logger.new 'my_program', Syslog::LOG_LOCAL1
log_local1.info 'this line will be logged using local1 facility level'

您可能需要先執行一些syslog.conf 設置。對於 BSD 機器,將以下行添加到 /etc/syslog.conf:

!my_program
*.*                                             /var/log/my_program.log

然後觸摸 /var/log/my_program.log 並使用 HUP(killall -HUP syslogd,在 FreeBSD 上)向 syslogd 發出信號。

如果您希望日誌自動翻轉和存檔,請參閱 newsyslog.conf(5) 和 newsyslog(8) 手冊頁。

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Logger類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。