我想从动作电缆日志中过滤sensitive
/ large
数据。像这样:
AppOnlineChannel#receive({"audio_ch"=>"{filtered}"})
我没有为此任务找到任何可操作的电缆配置。有人有什么想法,我该怎么办?
预先感谢。
这是我从dispatch_action
方法中过滤特定字段的方式。
config/initializers/actioncable.rb
,然后dispatch_action
方法注意:添加此代码后重新启动服务器
# config/initializers/actioncable.rb
ActionCable::Channel::Base.class_eval do
def dispatch_action(action, data)
# logger.info action_signature(action, data)
# .......... filter data start ..........
filtered_data = data
filtered_data['audio_ch'] = '{filtered}' if filtered_data['audio_ch'].present?
logger.info action_signature(action, filtered_data)
# .......... ./filter data end ..........
if method(action).arity == 1
public_send action, data
else
public_send action
end
rescue Exception => exception
rescue_with_handler(exception) || raise
end
end
此猴子补丁在特定的频道中起作用。
# app/channels/app_online_channel.rb
class AppOnlineChannel < ApplicationCable::Channel
def dispatch_action(action, data)
# logger.info action_signature(action, data)
# .......... filter data start ..........
filtered_data = data
filtered_data['audio_ch'] = '{filtered}' if filtered_data['audio_ch'].present?
logger.info action_signature(action, filtered_data)
# .......... ./filter data end ..........
if method(action).arity == 1
public_send action, data
else
public_send action
end
rescue Exception => exception
rescue_with_handler(exception) || raise
end