[tor-commits] [sbws/master] Add logging to a file by default, as well as stdout

pastly at torproject.org pastly at torproject.org
Thu Jun 14 13:29:50 UTC 2018


commit 149f4adad4734346a2fc9cba35841bb69ee6fffa
Author: juga0 <juga at riseup.net>
Date:   Wed Jun 6 12:26:46 2018 +0000

    Add logging to a file by default, as well as stdout
---
 sbws/config.default.ini     |  1 +
 sbws/config.log.default.ini | 23 +++++++++++++++++------
 sbws/util/config.py         |  6 +++++-
 3 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/sbws/config.default.ini b/sbws/config.default.ini
index c9106e8..15ab014 100644
--- a/sbws/config.default.ini
+++ b/sbws/config.default.ini
@@ -2,6 +2,7 @@
 datadir = ${sbws_home}/datadir
 v3bw_fname = ${sbws_home}/v3bw.txt
 started_filepath = ${sbws_home}/started_at
+log_filepath = ${sbws_home}/sbws.log
 
 [destinations]
 # How often to check if a destional is usable
diff --git a/sbws/config.log.default.ini b/sbws/config.log.default.ini
index 1defe20..4294c6e 100644
--- a/sbws/config.log.default.ini
+++ b/sbws/config.log.default.ini
@@ -2,10 +2,10 @@
 keys = root,sbws
 
 [handlers]
-keys = sbwsdefault,sbwsdebug
+keys = sbwsdefault,sbwsdebug,sbwsfile
 
 [formatters]
-keys = sbwsdefault,sbwsdebug
+keys = sbwsdefault,sbwsdebug,sbwssys
 
 [logger_root]
 level = WARNING
@@ -15,13 +15,13 @@ qualname=root
 
 [logger_sbws]
 level = INFO
-handlers = sbwsdefault
+# add here sbwssys for also logging to system log
+handlers = sbwsdefault,sbwsfile
 propagate = 0
 qualname=sbws
 
 [handler_sbwsdefault]
 class = StreamHandler
-# add here sbwsys for also logging to system log
 formatter = sbwsdefault
 args = (sys.stdout,)
 
@@ -48,5 +48,16 @@ level = INFO
 
 # syslog-like formater
 [formatter_sbwssys]
-format = %(module)s[%(process)s]: %(message)s
-datefmt = %Y-%m-%d %H:%M:%S
+# hostname should be added here with a context filter, dunno if there is a way
+# to add it here
+format = %(asctime)s %(module)s[%(process)s]: <%(levelname)s> %(message)s
+datefmt = %b %d %H:%M:%S
+
+[handler_sbwsfile]
+class = handlers.RotatingFileHandler
+formatter = sbwssys
+# when not using level, it seems to be using the one passed as cli arg,
+# which is the desired behaviour
+# dunno if there is a way to have log file as a variable
+# setting one as default
+args = ('sbws.log',)
diff --git a/sbws/util/config.py b/sbws/util/config.py
index 7bf73df..cdf8601 100644
--- a/sbws/util/config.py
+++ b/sbws/util/config.py
@@ -87,6 +87,10 @@ def get_user_example_config():
 
 def configure_logging(conf):
     assert isinstance(conf, ConfigParser)
+    # log_filepath is not a variable in config.log.default.ini,
+    # so adding it here. Maybe there is a better way to do this
+    conf['handler_sbwsfile']['args'] = \
+        "('{}',)".format(conf['paths']['log_filepath'])
     with NamedTemporaryFile('w+t') as fd:
         conf.write(fd)
         fd.seek(0, 0)
@@ -146,7 +150,7 @@ def _validate_paths(conf):
     err_tmpl = Template('$sec/$key ($val): $e')
     unvalidated_keys = [
         'datadir', 'sbws_home', 'v3bw_fname',
-        'started_filepath']
+        'started_filepath', 'log_filepath']
     all_valid_keys = unvalidated_keys
     allow_missing = ['sbws_home']
     errors.extend(_validate_section_keys(conf, sec, all_valid_keys, err_tmpl,





More information about the tor-commits mailing list