commit 149f4adad4734346a2fc9cba35841bb69ee6fffa Author: juga0 juga@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,
tor-commits@lists.torproject.org