secure logger
v0.2.1
Python装饰器可生成编辑性且格式良好的日志条目。在所有可呼叫上工作:类,类方法,Python模块功能。基于可自定义的案例不敏感密钥列表,递归地编辑Python字典键值。防止您的敏感应用程序数据(例如云提供商钥匙对)泄漏到应用程序日志中。
pip install secure-logger from secure_logger . decorators import secure_logger
import logging
logging . getLogger ( __name__ )
logging . basicConfig ( level = logging . INFO )
class Foo ( object ):
@ secure_logger ( log_level = 'INFO' )
def bar ( self , dict_data , list_data ):
pass
# call your method, passing some sensitive data
dict_data = {
"not_a_sensitive_key" : "you-can-see-me" ,
"aws-access-key-id" : "i-am-hidden" ,
"aws-secret-access-key" : "so-am-i" ,
}
list_data = [ "foo" , "bar" ]
foo = Foo ()
foo . bar ( dict_data = dict_data , list_data = list_data )日志输出:
INFO:secure_logger: __main__.bar() ['<__main__.Foo object at 0x103474ac0>'] keyword args: {
"dict_data": {
"not_a_sensitive_key": "you-can-see-me",
"aws-access-key-id": "*** -- secure_logger() -- ***",
"aws-secret-access-key": "*** -- secure_logger() -- ***"
},
"list_data": [
"foo",
"bar"
] from secure_logger . masked_dict import masked_dict , masked_dict2str
dict_data = {
'not_a_sensitive_key' : 'you-can-see-me' ,
'aws-access-key_id' : conf . AWS_ACCESS_KEY_ID ,
'aws-secret-access-key' : conf . AWS_SECRET_ACCESS_KEY
}
print ( masked_dict2str ( dict_data ))输出:
{
" not_a_sensitive_key " : " you-can-see-me " ,
" aws-access-key-id " : " *** -- secure_logger() -- *** " ,
" aws-secret-access-key " : " *** -- secure_logger() -- *** "
}Secure_logger接受可选参数,您可以将其配置为BASH环境变量或将.ENV文件放在项目根部
此外,您可以使用自定义参数覆盖装饰器的单个调用:
class MyClass ():
@ secure_logger ( log_level = 'DEBUG' , sensitive_keys = [ "password" , "apikey" , "crown_jewels" ], message = "*** -- TOP SECRET -- ***" , indent = 4 )
def another_function ( self , password : str , apikey : str , crown_jewels : List ( dict )):
pass SECURE_LOGGER_REDACTION_MESSAGE = "*** -- secure_logger() -- ***"
SECURE_LOGGER_INDENTATION = 4
SECURE_LOGGER_SENSITIVE_KEYS = [
"password" ,
"token" ,
"client_id" ,
"client_secret" ,
"Authorization" ,
"secret" ,
"access_key_id" ,
"secret_access_key" ,
"access-key-id" ,
"secret-access-key" ,
"aws_access_key_id" ,
"aws_secret_access_key" ,
"aws-access-key-id" ,
"aws-secret-access-key" ,
]
SECURE_LOGGER_LOG_LEVEL = 'DEBUG' 欢迎和鼓励拉的请求!
联系人:劳伦斯·麦克丹尼尔(Lawrence McDaniel)。