[tor-commits] [sbws/master] Add [logging] section to config and validate it
pastly at torproject.org
pastly at torproject.org
Wed Jul 11 15:05:40 UTC 2018
commit f3a487bd8fd950fb2f9e41d1a944bc87aca49e44
Author: Matt Traudt <sirmatt at ksu.edu>
Date: Mon Jun 25 09:58:30 2018 -0400
Add [logging] section to config and validate it
---
sbws/config.default.ini | 11 +++++++++++
sbws/util/config.py | 22 +++++++++++++++++++++-
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/sbws/config.default.ini b/sbws/config.default.ini
index 80ddc8b..10a2fb3 100644
--- a/sbws/config.default.ini
+++ b/sbws/config.default.ini
@@ -4,6 +4,7 @@ v3bw_dname = ${sbws_home}/v3bw
v3bw_fname = ${v3bw_dname}/{}.v3bw
started_filepath = ${sbws_home}/started_at
log_filepath = ${sbws_home}/sbws.log
+log_dname = ${sbws_home}/log
[destinations]
# How often to check if a destional is usable
@@ -81,3 +82,13 @@ measure_authorities = off
fraction_relays = 0.05
# The minimum number of best priority relays we are willing to return
min_relays = 50
+
+[logging]
+# Level to log at. Debug, info, warning, error.
+level = debug
+# Whether or not to log to a rotating file the directory paths.log_dname
+to_file = yes
+# Whether or not to log to stdout
+to_stdout = no
+# Format string to use when logging
+format = [%(asctime)s] [%(name)s] [%(levelname)s] %(message)s
diff --git a/sbws/util/config.py b/sbws/util/config.py
index 0bfa072..c24ac23 100644
--- a/sbws/util/config.py
+++ b/sbws/util/config.py
@@ -109,6 +109,7 @@ def validate_config(conf):
errors.extend(_validate_paths(conf))
errors.extend(_validate_destinations(conf))
errors.extend(_validate_relayprioritizer(conf))
+ errors.extend(_validate_logging(conf))
return len(errors) < 1, errors
@@ -156,7 +157,7 @@ def _validate_paths(conf):
err_tmpl = Template('$sec/$key ($val): $e')
unvalidated_keys = [
'datadir', 'sbws_home', 'v3bw_fname', 'v3bw_dname',
- 'started_filepath', 'log_filepath']
+ 'started_filepath', 'log_filepath', 'log_dname']
all_valid_keys = unvalidated_keys
allow_missing = ['sbws_home']
errors.extend(_validate_section_keys(conf, sec, all_valid_keys, err_tmpl,
@@ -227,6 +228,25 @@ def _validate_relayprioritizer(conf):
return errors
+def _validate_logging(conf):
+ errors = []
+ sec = 'logging'
+ err_tmpl = Template('$sec/$key ($val): $e')
+ enums = {
+ 'level': {'choices': ['debug', 'info', 'warning', 'error']},
+ }
+ bools = {
+ 'to_file': {},
+ 'to_stdout': {},
+ }
+ unvalidated = ['format']
+ all_valid_keys = list(bools.keys()) + list(enums.keys()) + unvalidated
+ errors.extend(_validate_section_keys(conf, sec, all_valid_keys, err_tmpl))
+ errors.extend(_validate_section_bools(conf, sec, bools, err_tmpl))
+ errors.extend(_validate_section_enums(conf, sec, enums, err_tmpl))
+ return errors
+
+
def _validate_destinations(conf):
errors = []
sec = 'destinations'
More information about the tor-commits
mailing list