Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e9d15072
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,体验更适合开发者的 AI 搜索 >>
提交
e9d15072
编写于
12月 16, 2015
作者:
E
Eileen M. Uchitelle
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #22592 from nwjsmith/disable-logger-message-broadcasts
Add Logger option to disable message broadcasts
上级
342221b0
e12ffb76
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
40 addition
and
23 deletion
+40
-23
activesupport/lib/active_support/logger.rb
activesupport/lib/active_support/logger.rb
+5
-3
activesupport/lib/active_support/logger_silence.rb
activesupport/lib/active_support/logger_silence.rb
+3
-2
activesupport/test/broadcast_logger_test.rb
activesupport/test/broadcast_logger_test.rb
+32
-18
未找到文件。
activesupport/lib/active_support/logger.rb
浏览文件 @
e9d15072
require
'active_support/core_ext/module/attribute_accessors'
require
'active_support/logger_silence'
require
'logger'
...
...
@@ -6,16 +5,18 @@ module ActiveSupport
class
Logger
<
::
Logger
include
LoggerSilence
attr_accessor
:broadcast_messages
# Broadcasts logs to multiple loggers.
def
self
.
broadcast
(
logger
)
# :nodoc:
Module
.
new
do
define_method
(
:add
)
do
|*
args
,
&
block
|
logger
.
add
(
*
args
,
&
block
)
logger
.
add
(
*
args
,
&
block
)
if
broadcast_messages
super
(
*
args
,
&
block
)
end
define_method
(
:<<
)
do
|
x
|
logger
<<
x
logger
<<
x
if
broadcast_messages
super
(
x
)
end
...
...
@@ -44,6 +45,7 @@ def self.broadcast(logger) # :nodoc:
def
initialize
(
*
args
)
super
@formatter
=
SimpleFormatter
.
new
@broadcast_messages
=
true
end
# Simple formatter which only displays the message.
...
...
activesupport/lib/active_support/logger_silence.rb
浏览文件 @
e9d15072
require
'active_support/concern'
require
'active_support/core_ext/module/attribute_accessors'
module
LoggerSilence
extend
ActiveSupport
::
Concern
included
do
cattr_accessor
:silencer
self
.
silencer
=
true
...
...
@@ -21,4 +22,4 @@ def silence(temporary_level = Logger::ERROR)
yield
self
end
end
end
\ No newline at end of file
end
activesupport/test/broadcast_logger_test.rb
浏览文件 @
e9d15072
...
...
@@ -2,56 +2,69 @@
module
ActiveSupport
class
BroadcastLoggerTest
<
TestCase
attr_reader
:logger
,
:
log1
,
:log2
attr_reader
:logger
,
:
receiving_logger
def
setup
@log1
=
FakeLogger
.
new
@log2
=
FakeLogger
.
new
@log1
.
extend
Logger
.
broadcast
@log2
@logger
=
@log1
@logger
=
FakeLogger
.
new
@receiving_logger
=
FakeLogger
.
new
@logger
.
extend
Logger
.
broadcast
@receiving_logger
end
def
test_debug
logger
.
debug
"foo"
assert_equal
'foo'
,
log1
.
adds
.
first
[
2
]
assert_equal
'foo'
,
log2
.
adds
.
first
[
2
]
assert_equal
'foo'
,
logger
.
adds
.
first
[
2
]
assert_equal
'foo'
,
receiving_logger
.
adds
.
first
[
2
]
end
def
test_debug_without_message_broadcasts
logger
.
broadcast_messages
=
false
logger
.
debug
"foo"
assert_equal
'foo'
,
logger
.
adds
.
first
[
2
]
assert_equal
[],
receiving_logger
.
adds
end
def
test_close
logger
.
close
assert
log
1
.
closed
,
'should be closed'
assert
log2
.
closed
,
'should be closed'
assert
log
ger
.
closed
,
'should be closed'
assert
receiving_logger
.
closed
,
'should be closed'
end
def
test_chevrons
logger
<<
"foo"
assert_equal
%w{ foo }
,
log1
.
chevrons
assert_equal
%w{ foo }
,
log2
.
chevrons
assert_equal
%w{ foo }
,
logger
.
chevrons
assert_equal
%w{ foo }
,
receiving_logger
.
chevrons
end
def
test_chevrons_without_message_broadcasts
logger
.
broadcast_messages
=
false
logger
<<
"foo"
assert_equal
%w{ foo }
,
logger
.
chevrons
assert_equal
[],
receiving_logger
.
chevrons
end
def
test_level
assert_nil
logger
.
level
logger
.
level
=
10
assert_equal
10
,
log
1
.
level
assert_equal
10
,
log2
.
level
assert_equal
10
,
log
ger
.
level
assert_equal
10
,
receiving_logger
.
level
end
def
test_progname
assert_nil
logger
.
progname
logger
.
progname
=
10
assert_equal
10
,
log
1
.
progname
assert_equal
10
,
log2
.
progname
assert_equal
10
,
log
ger
.
progname
assert_equal
10
,
receiving_logger
.
progname
end
def
test_formatter
assert_nil
logger
.
formatter
logger
.
formatter
=
10
assert_equal
10
,
log
1
.
formatter
assert_equal
10
,
log2
.
formatter
assert_equal
10
,
log
ger
.
formatter
assert_equal
10
,
receiving_logger
.
formatter
end
class
FakeLogger
attr_reader
:adds
,
:closed
,
:chevrons
attr_accessor
:level
,
:progname
,
:formatter
attr_accessor
:level
,
:progname
,
:formatter
,
:broadcast_messages
def
initialize
@adds
=
[]
...
...
@@ -60,6 +73,7 @@ def initialize
@level
=
nil
@progname
=
nil
@formatter
=
nil
@broadcast_messages
=
true
end
def
debug
msg
,
&
block
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录