|
1 | 1 | import time
|
2 | 2 | import logging
|
| 3 | +import logging.handlers |
| 4 | +import os |
| 5 | +import os.path |
3 | 6 |
|
4 | 7 | from BigStash import __version__
|
5 | 8 | from .conf import BigStashAPISettings
|
@@ -62,9 +65,27 @@ def __init__(self, auth=None, settings=None, headers=None,
|
62 | 65 | def setup_logging(cls, settings):
|
63 | 66 | level = getattr(logging, settings['log_level'])
|
64 | 67 | logging.basicConfig(level=level)
|
| 68 | + for h in logging.getLogger().handlers: |
| 69 | + h.level = level |
65 | 70 | requests_log = logging.getLogger("requests.packages.urllib3")
|
66 | 71 | requests_log.setLevel(level)
|
67 | 72 | requests_log.propagate = True
|
| 73 | + logdir = settings.get_config_file('logs') |
| 74 | + if not os.path.exists(logdir): |
| 75 | + os.makedirs(logdir) |
| 76 | + if not os.path.isdir(logdir): |
| 77 | + raise Exception("Fatal error: {} is not a directory".format( |
| 78 | + logdir)) |
| 79 | + bgstlog = logging.getLogger('bigstash') |
| 80 | + bgstlog.setLevel(logging.INFO) |
| 81 | + bgstlog.propagate = True |
| 82 | + fname = os.path.join(logdir, 'bigstash') |
| 83 | + handler = logging.handlers.RotatingFileHandler( |
| 84 | + fname, maxBytes=10000, backupCount=5) |
| 85 | + formatter = logging.Formatter( |
| 86 | + '%(asctime)s - %(name)s - %(levelname)s - %(message)s') |
| 87 | + handler.setFormatter(formatter) |
| 88 | + bgstlog.addHandler(handler) |
68 | 89 | if level == logging.DEBUG:
|
69 | 90 | from requests.packages.urllib3.connection import HTTPConnection
|
70 | 91 | HTTPConnection.debuglevel = 1
|
|
0 commit comments