# Replace sensitive parameter data from the request log.
# Filters parameters that have any of the arguments as a substring.
# Looks in all subhashes of the param hash for keys to filter.
# If a block is given, each key and value of the parameter hash and all
# subhashes is passed to it, the value or key
# can be replaced using String#replace or similar method.
#
# Examples:
# filter_parameter_logging
# => Does nothing, just slows the logging process down
#
# filter_parameter_logging :password
# => replaces the value to all keys matching /password/i with "[FILTERED]"
#
# filter_parameter_logging :foo, "bar"
# => replaces the value to all keys matching /foo|bar/i with "[FILTERED]"
#
# filter_parameter_logging { |k,v| v.reverse! if k =~ /secret/i }
# => reverses the value to all keys matching /secret/i
#
# filter_parameter_logging(:foo, "bar") { |k,v| v.reverse! if k =~ /secret/i }
# => reverses the value to all keys matching /secret/i, and
# replaces the value to all keys matching /foo|bar/i with "[FILTERED]"
def filter_parameter_logging(*filter_words, &block)
parameter_filter = Regexp.new(filter_words.collect{ |s| s.to_s }.join('|'), true) if filter_words.length > 0
define_method(:filter_parameters) do |unfiltered_parameters|
filtered_parameters = {}
unfiltered_parameters.each do |key, value|
if key =~ parameter_filter
filtered_parameters[key] = '[FILTERED]'
elsif value.is_a?(Hash)
filtered_parameters[key] = filter_parameters(value)
elsif value.is_a?(Array)
filtered_parameters[key] = value.collect do |item|
case item
when Hash, Array
filter_parameters(item)
else
item
end
end
elsif block_given?
key = key.dup
value = value.dup if value.duplicable?
yield key, value
filtered_parameters[key] = value
else
filtered_parameters[key] = value
end
end
filtered_parameters
end
protected :filter_parameters
分享到:
相关推荐
String_32bit_Logging_Mitsubishi_cn.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子String_32bit_Logging_Mitsubishi_cn.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子String_32bit_Logging_...
标题中的“Simple_Key_Logging_API.zip_key logging_keylogging”表明这是一个关于键盘事件记录的API,主要功能是记录用户的键入信息。关键词“key logging”和“keylogging”都是指这种技术,它通常用于监控和记录...
《Spring框架中的日志工具:Apache Commons Logging 1.2》 Apache Commons Logging(简称Commons Logging)是Apache软件基金会开发的一个开源项目,它提供了一个轻量级的日志API,旨在为Java应用程序提供一个简单的...
##### Error Handling and Logging (错误处理与日志记录) - **error_reporting** - **指令**: `error_reporting` - **值**: 未明确给出 - **功能**: 控制报告哪些级别的错误。 - **默认**: 默认情况下,此选项...
标题中的"PyPI 官网下载 | supervisor_logging_gelf-0.0.1-py2-none-any.whl"指的是Python的包管理平台PyPI(Python Package Index)上发布的名为`supervisor_logging_gelf`的软件包的一个版本,具体版本号为0.0.1。...
标题中的"String_32bit_Logging_Mitsubishi_cnPLC程序.zip"表明这是一个与三菱(Mitsubishi) PLC相关的32位字符串记录日志程序的压缩包。这可能包含了一个或多个程序文件,用于在Mitsubishi PLC系统中实现32位数据的...
Python库`python_logging_rabbitmq`是一个用于将Python的日志记录发送到RabbitMQ服务器的模块,版本为1.1.1。RabbitMQ是一种开源的消息代理和队列服务器,广泛应用于分布式系统中的异步处理和解耦。该库允许开发者在...
# logger = logging.getLogger() # logger.setLevel(logging.INFO) # Log等级总开关 # # 第二步,创建一个handler,用于写入日志文件 # rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time())) # log_...
- base_config_ufs_logging_filesys 设置文件系统日志记录选项。 - base_config_profile_del_clusters 设置删除集群。 - base_config_defaultrouter 设置默认路由。 - base_config_notrouter 设置非路由器主机。...
`el_logging` 是一个Python库,专注于日志记录功能,版本为0.2.18。在Python开发中,日志记录是跟踪程序运行状态、调试问题和收集系统信息的关键工具。`el_logging` 库可能提供了对Python内置`logging`模块的扩展或...
本文将深入探讨一个名为"vp.tar.gz_arduino_esp-07_heat_logging_temperatures"的项目,这是一个专为Terrawatt热泵设计的温度记录程序,利用Arduino ESP-07模块实现数据采集与存储。通过这个项目,我们可以了解到...
这里提到的“32bit Logging”很可能是指在Mitsubishi的设备上进行32位数据的记录和日志管理。 字符串在编程中是非常基础且重要的元素,用于存储和处理文本信息。在PLC编程中,字符串处理可能涉及到接收、解析和显示...
5. **日志记录**:`#define UIP_CONF_LOGGING` 开启或关闭uIP的日志功能,有助于调试和理解uIP的运行情况。 6. **UDP支持**:`#define UIP_CONF_UDP` 控制是否编译和启用UDP协议功能。 7. **UDP校验和**:`#define...
logging_warnings_codes
《Python库django_splunk_logging-1.1.0:集成Django与Splunk的日志管理》 在Python的世界里,高效且灵活的日志管理是任何项目开发中的关键环节。当我们谈论`django_splunk_logging`这个库时,它正是为了解决这样的...
iOS_16_CarKeyTesting_Enable_Baobab_Brands_Prod_Cert_and_All_Logging.mobileconfig
资源分类:Python库 所属语言:Python 资源全名:python_logging_discord_handler-0.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
4. **Logback+SLF4J**:Logback是用于日志记录的高效框架,而Simple Logging Facade for Java (SLF4J)则是一个日志门面,允许用户在部署时选择不同的日志实现。在这个项目中,它们共同提供了灵活的日志记录功能。 5...
**PyPI 官网下载 | json_logging-1.4.0rc2-py2.py3-none-any.whl** PyPI(Python Package Index)是Python软件的官方仓库,它提供了丰富的Python库供开发者下载和使用。在给定的资源中,我们关注的是`json_logging`...