import os def logfile_path(jsonfmt=False, debug=False): """ Returns the a logfileconf path following this rules: - conf/logging_debug_json.conf # jsonfmt=true, debug=true - conf/logging_json.conf # jsonfmt=true, debug=false - conf/logging_debug.conf # jsonfmt=false, debug=true - conf/logging.conf # jsonfmt=false, debug=false Can be parametrized via envvars: JSONLOG=true, DEBUGLOG=true """ _json = "" _debug = "" if jsonfmt or os.getenv('JSONLOG', 'false').lower() == 'true': _json = "_json" if debug or os.getenv('DEBUGLOG', 'false').lower() == 'true': _debug = "_debug" return 'conf/logging%s%s.conf' % (_debug, _json) def filter_logs(values, filtered_fields): """ Takes a dict and a list of keys to filter. eg: with filtered_fields: [{'key': ['k1', k2'], 'fn': lambda x: 'filtered'}] and values: {'k1': {'k2': 'some-secret'}, 'k3': 'some-value'} the returned dict is: {'k1': {k2: 'filtered'}, 'k3': 'some-value'} """ for field in filtered_fields: cdict = values for key in field['key'][:-1]: if key in cdict: cdict = cdict[key] last_key = field['key'][-1] if last_key in cdict and cdict[last_key]: cdict[last_key] = field['fn'](cdict[last_key])