Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
99bd118e
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
99bd118e
编写于
6月 09, 2016
作者:
K
Kevin McPhillips
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Broadcast #silence on logger. Rewrite tests.
上级
f9a39e0d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
121 addition
and
31 deletion
+121
-31
activesupport/lib/active_support/logger.rb
activesupport/lib/active_support/logger.rb
+18
-0
activesupport/test/broadcast_logger_test.rb
activesupport/test/broadcast_logger_test.rb
+103
-31
未找到文件。
activesupport/lib/active_support/logger.rb
浏览文件 @
99bd118e
...
...
@@ -55,6 +55,24 @@ def self.broadcast(logger) # :nodoc:
logger
.
local_level
=
level
if
logger
.
respond_to?
(
:local_level
=
)
super
(
level
)
if
respond_to?
(
:local_level
=
)
end
define_method
(
:silence
)
do
|
level
=
Logger
::
ERROR
,
&
block
|
if
logger
.
respond_to?
(
:silence
)
logger
.
silence
(
level
)
do
if
respond_to?
(
:silence
)
super
(
level
,
&
block
)
else
block
.
call
(
level
)
end
end
else
if
respond_to?
(
:silence
)
super
(
level
,
&
block
)
else
block
.
call
(
level
)
end
end
end
end
end
...
...
activesupport/test/broadcast_logger_test.rb
浏览文件 @
99bd118e
...
...
@@ -3,75 +3,147 @@
module
ActiveSupport
class
BroadcastLoggerTest
<
TestCase
attr_reader
:logger
,
:log1
,
:log2
def
setup
setup
do
@log1
=
FakeLogger
.
new
@log2
=
FakeLogger
.
new
@log1
.
extend
Logger
.
broadcast
@log2
@logger
=
@log1
end
def
test_debug
logger
.
debug
"foo"
assert_equal
'foo'
,
log1
.
adds
.
first
[
2
]
assert_equal
'foo'
,
log2
.
adds
.
first
[
2
]
Logger
::
Severity
.
constants
.
each
do
|
level_name
|
method
=
level_name
.
downcase
level
=
Logger
::
Severity
.
const_get
(
level_name
)
test
"#
#{
method
}
adds the message to all loggers"
do
logger
.
send
(
method
,
"msg"
)
assert_equal
[
level
,
"msg"
,
nil
],
log1
.
adds
.
first
assert_equal
[
level
,
"msg"
,
nil
],
log2
.
adds
.
first
end
end
def
test_close
test
"#close broadcasts to all loggers"
do
logger
.
close
assert
log1
.
closed
,
'should be closed'
assert
log2
.
closed
,
'should be closed'
end
def
test_chevrons
test
"#<< shovels the value into all loggers"
do
logger
<<
"foo"
assert_equal
%w{ foo }
,
log1
.
chevrons
assert_equal
%w{ foo }
,
log2
.
chevrons
end
def
test_level
assert_nil
logger
.
level
logger
.
level
=
10
assert_equal
10
,
log1
.
level
assert_equal
10
,
log2
.
level
test
"#level= assigns the level to all loggers"
do
assert_equal
::
Logger
::
DEBUG
,
logger
.
level
logger
.
level
=
::
Logger
::
FATAL
assert_equal
::
Logger
::
FATAL
,
log1
.
level
assert_equal
::
Logger
::
FATAL
,
log2
.
level
end
def
test_progname
test
"#progname= assigns to all the loggers"
do
assert_nil
logger
.
progname
logger
.
progname
=
10
assert_equal
10
,
log1
.
progname
assert_equal
10
,
log2
.
progname
logger
.
progname
=
::
Logger
::
FATAL
assert_equal
::
Logger
::
FATAL
,
log1
.
progname
assert_equal
::
Logger
::
FATAL
,
log2
.
progname
end
def
test_formatter
test
"#formatter= assigns to all the loggers"
do
assert_nil
logger
.
formatter
logger
.
formatter
=
10
assert_equal
10
,
log1
.
formatter
assert_equal
10
,
log2
.
formatter
logger
.
formatter
=
::
Logger
::
FATAL
assert_equal
::
Logger
::
FATAL
,
log1
.
formatter
assert_equal
::
Logger
::
FATAL
,
log2
.
formatter
end
test
"#local_level= assigns the local_level to all loggers"
do
assert_equal
::
Logger
::
DEBUG
,
logger
.
local_level
logger
.
local_level
=
::
Logger
::
FATAL
assert_equal
::
Logger
::
FATAL
,
log1
.
local_level
assert_equal
::
Logger
::
FATAL
,
log2
.
local_level
end
test
"#silence silences all loggers below the default level of ERROR"
do
logger
.
silence
do
logger
.
debug
"test"
end
assert_equal
[],
log1
.
adds
assert_equal
[],
log2
.
adds
end
test
"#silence does not silence at or above ERROR"
do
logger
.
silence
do
logger
.
error
"from error"
logger
.
unknown
"from unknown"
end
assert_equal
[[
::
Logger
::
ERROR
,
"from error"
,
nil
],
[
::
Logger
::
UNKNOWN
,
"from unknown"
,
nil
]],
log1
.
adds
assert_equal
[[
::
Logger
::
ERROR
,
"from error"
,
nil
],
[
::
Logger
::
UNKNOWN
,
"from unknown"
,
nil
]],
log2
.
adds
end
test
"#silence allows you to override the silence level"
do
logger
.
silence
(
::
Logger
::
FATAL
)
do
logger
.
error
"unseen"
logger
.
fatal
"seen"
end
assert_equal
[[
::
Logger
::
FATAL
,
"seen"
,
nil
]],
log1
.
adds
assert_equal
[[
::
Logger
::
FATAL
,
"seen"
,
nil
]],
log2
.
adds
end
class
FakeLogger
include
LoggerSilence
attr_reader
:adds
,
:closed
,
:chevrons
attr_accessor
:level
,
:progname
,
:formatter
attr_accessor
:level
,
:progname
,
:formatter
,
:local_level
def
initialize
@adds
=
[]
@closed
=
false
@chevrons
=
[]
@level
=
nil
@progname
=
nil
@formatter
=
nil
@adds
=
[]
@closed
=
false
@chevrons
=
[]
@level
=
::
Logger
::
DEBUG
@local_level
=
::
Logger
::
DEBUG
@progname
=
nil
@formatter
=
nil
end
def
debug
(
message
,
&
block
)
add
(
::
Logger
::
DEBUG
,
message
,
&
block
)
end
def
info
(
message
,
&
block
)
add
(
::
Logger
::
INFO
,
message
,
&
block
)
end
def
warn
(
message
,
&
block
)
add
(
::
Logger
::
WARN
,
message
,
&
block
)
end
def
error
(
message
,
&
block
)
add
(
::
Logger
::
ERROR
,
message
,
&
block
)
end
def
fatal
(
message
,
&
block
)
add
(
::
Logger
::
FATAL
,
message
,
&
block
)
end
def
debug
msg
,
&
block
add
(
:
omg
,
nil
,
msg
,
&
block
)
def
unknown
(
message
,
&
block
)
add
(
:
:
Logger
::
UNKNOWN
,
message
,
&
block
)
end
def
<<
x
@chevrons
<<
x
end
def
add
(
*
args
)
@adds
<<
args
def
add
(
message_level
,
message
=
nil
,
progname
=
nil
,
&
block
)
@adds
<<
[
message_level
,
message
,
progname
]
if
message_level
>=
local_level
end
def
close
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录