secure logger
v0.2.1
ديكور بيثون لتوليد إدخالات السجل المنقوشة ومنسقة بشكل جيد. يعمل على جميع Callables: الفصل ، أساليب الفصل ، وظائف وحدة 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' يتم الترحيب بطلبات السحب وتشجيعها!
الاتصال: لورانس مكدانيل.