非常教程

Ruby 2.4参考手册

系统日志 | Syslog

Syslog::Logger

Parent:Object

系统日志::记录器是一个工作日志记录器,通过系统日志而不是文件记录。您可以使用Syslog :: Logger在多台机器之间汇总日志。

默认情况下,Syslog :: Logger使用程序名称“ruby”,但可以通过第一个参数将其更改为:: new。

注意!初次初始化Syslog :: Logger时,只能设置Syslog :: Logger程序名称。这是Syslog :: Logger使用系统日志的方式的限制(在某些方面,这是对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(FreeBSD上的killall -HUP syslogd)发信号通知syslogd。

如果您希望将日志自动翻转并存档,请参阅newsyslog.conf(5)和newsyslog(8)手册页。

常量

LEVEL_MAP

将Logger警告类型映射到syslog(3)警告类型。

来自Ruby应用程序的消息不被视为使用syslog(3)来自其他系统守护进程的消息的关键,因此大多数消息都会减少一级。例如,Ruby Logger的致命消息被认为是syslog(3)的错误。

您正在使用的Syslog :: Logger版本。

属性

facilityRW

facility参数用于指定记录消息的程序类型。

formatterRW

记录格式化程序,Proc它将接收四个参数并返回格式化的消息。参数是:

severity

日志消息的严重性。

time

表示消息记录时间的Time实例。

progname

程序名已配置,或传递给记录器方法。

msg

用户传递给日志消息的对象 ; 不一定是一个字符串。

该块应该返回一个可以通过写入日志设备的对象write。未设置格式化程序时使用默认格式化程序。

levelRW

Logger兼容性的日志级别。

公共类方法

make_methods(meth) 显示源

为等级构建方法meth

# File ext/syslog/lib/syslog/logger.rb, line 106
  def self.make_methods meth
    level = ::Logger.const_get(meth.upcase)
    eval "      def #{meth}(message = nil, &block)
        add(#{level}, message, &block)
      end

      def #{meth}?
        @level <= #{level}
      end
", nil, __FILE__, __LINE__ + 1
  end

new(program_name = 'ruby', facility = nil)显示源

为记录器兼容性填写变量。如果这是Syslog :: Logger的第一个实例,program_name可以设置为更改记录的程序名称。该facility可设置为指定要使用的设施水平。

由于系统日志的工作方式,只能选择一个程序名称。

# File ext/syslog/lib/syslog/logger.rb, line 190
def initialize program_name = 'ruby', facility = nil
  @level = ::Logger::DEBUG
  @formatter = Formatter.new

  @@syslog ||= Syslog.open(program_name)

  @facility = (facility || @@syslog.facility)
end

syslog() 显示源

返回创建第一个实例时初始化的内部Syslog对象。

# File ext/syslog/lib/syslog/logger.rb, line 92
def self.syslog
  @@syslog
end

syslog=(syslog) 显示源

指定要使用的内部Syslog对象。

# File ext/syslog/lib/syslog/logger.rb, line 99
def self.syslog= syslog
  @@syslog = syslog
end

公共实例方法

add(severity, message = nil, progname = nil, &block) 显示源

几乎重复#add。progname被忽略。

# File ext/syslog/lib/syslog/logger.rb, line 202
def add severity, message = nil, progname = nil, &block
  severity ||= ::Logger::UNKNOWN
  @level <= severity and
    @@syslog.log( (LEVEL_MAP[severity] | @facility), '%s', formatter.call(severity, Time.now, progname, (message || block.call)) )
  true
end

debug()显示源

message在调试(syslog调试)日志级别记录,或者记录从块返回的消息。

# File ext/syslog/lib/syslog/logger.rb, line 155
  

error()显示源

message在错误(syslog警告)日志级别记录a ,或者记录从块返回的消息。

# File ext/syslog/lib/syslog/logger.rb, line 137
  

fatal() 显示源

message在致命(syslog err)日志级别记录a ,或者记录从块返回的消息。

# File ext/syslog/lib/syslog/logger.rb, line 131
  

info()显示源

message在info(syslog info)日志级别记录,或记录从该块返回的消息。

# File ext/syslog/lib/syslog/logger.rb, line 149
  

unknown() 显示源

记录message未知(系统日志警报)日志级别,或记录从该块返回的消息。

# File ext/syslog/lib/syslog/logger.rb, line 125
  

warn() 显示源

message在warn(syslog通知)日志级别记录,或者记录从块返回的消息。

# File ext/syslog/lib/syslog/logger.rb, line 143
  
Ruby 2.4

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,是世界上最优美而巧妙的语言。

主页 https://www.ruby-lang.org/
源码 https://github.com/ruby/ruby
版本 2.4
发布版本 2.4.1

Ruby 2.4目录

1.缩略 | Abbrev
2.ARGF
3.数组 | Array
4.Base64
5.基本对象 | BasicObject
6.基准测试 | Benchmark
7.BigDecimal
8.绑定 | Binding
9.CGI
10.类 | Class
11.比较 | Comparable
12.负责 | Complex
13.计算续体 | Continuation
14.覆盖 | Coverage
15.CSV
16.日期 | Date
17.日期时间 | DateTime
18.DBM
19.代理 | Delegator
20.摘要 | Digest
21.Dir
22.DRb
23.编码 | Encoding
24.枚举 | Enumerable
25.枚举 | Enumerator
26.ENV
27.ERB
28.错误 | Errors
29.Etc
30.期望值 | Exception
31.错误类 | FalseClass
32.Fiber
33.Fiddle
34.文件 | File
35.文件实用程序 | FileUtils
36.查找 | Find
37.浮点 | Float
38.Forwardable
39.GC
40.GDBM
41.GetoptLong
42.Hash
43.Integer
44.IO
45.IPAddr
46.JSON
47.Kernel
48.语言 | 3Language
49.记录 | Logger
50.编排 | Marshal
51.MatchData
52.数学 | Math
53.矩阵 | Matrix
54.方法 | Method
55.模型 | Module
56.监控 | Monitor
57. 互斥 | Mutex
58.Net
59.Net::FTP
60.Net::HTTP
61.Net::IMAP
62.Net::SMTP
63.NilClass
64.数字 | Numeric
65.对象 | Object
66.ObjectSpace
67.Observable
68.Open3
69.OpenSSL
70.OpenStruct
71.OpenURI
72.OptionParser
73.路径名 | Pathname
74.完整输出 | PrettyPrint
75.Prime
76.Proc
77.过程 | Process
78.PStore
79.PTY
80.队列 | Queue
81.随机 | Random
82.范围 | Range
83.合理的 | Rational
84.Readline
85.Regexp
86.Resolv
87.Ripper
88.RubyVM
89.Scanf
90.SDBM
91.SecureRandom
92.Set
93.Shell
94.信号 | Signal
95.Singleton
96.套接字 | Socket
97.字符串 | String
98.StringIO
99.StringScanner
100.结构 | Struct