Revision 9986e569

b/kamaki/cli/__init__.py
40 40
from kamaki.cli.history import History
41 41
from kamaki.cli.utils import print_dict, red, magenta, yellow
42 42
from kamaki.cli.errors import CLIError
43
from kamaki.logger import add_stream_logger, get_logger
43 44

  
44 45
_help = False
45 46
_debug = False
......
168 169
def _setup_logging(silent=False, debug=False, verbose=False, include=False):
169 170
    """handle logging for clients package"""
170 171

  
171
    def add_handler(name, level, prefix=''):
172
        h = logging.StreamHandler()
173
        fmt = logging.Formatter(prefix + '%(message)s')
174
        h.setFormatter(fmt)
175
        logger = logging.getLogger(name)
176
        logger.addHandler(h)
177
        logger.setLevel(level)
178

  
179 172
    if silent:
180
        add_handler('', logging.CRITICAL)
173
        add_stream_logger(__name__, logging.CRITICAL)
181 174
        return
182 175

  
183 176
    if debug:
184
        add_handler('requests', logging.INFO, prefix='* ')
185
        add_handler('clients.send', logging.DEBUG, prefix='> ')
186
        add_handler('clients.recv', logging.DEBUG, prefix='< ')
187
        add_handler('kamaki', logging.DEBUG, prefix='(debug): ')
177
        add_stream_logger('kamaki.clients.send', logging.DEBUG)
178
        add_stream_logger('kamaki.clients.recv', logging.DEBUG)
179
        add_stream_logger(__name__, logging.DEBUG)
188 180
    elif verbose:
189
        add_handler('requests', logging.INFO, prefix='* ')
190
        add_handler('clients.send', logging.INFO, prefix='> ')
191
        add_handler('clients.recv', logging.INFO, prefix='< ')
192
        add_handler('kamaki', logging.INFO, prefix='(i): ')
181
        add_stream_logger('kamaki.clients.send', logging.INFO)
182
        add_stream_logger('kamaki.clients.recv', logging.INFO)
183
        add_stream_logger(__name__, logging.INFO)
193 184
    if include:
194
        add_handler('data.send', logging.INFO, prefix='>[data]: ')
195
        add_handler('data.recv', logging.INFO, prefix='<[data]: ')
196
    add_handler('kamaki', logging.WARNING, prefix='(warning): ')
185
        add_stream_logger('kamaki.clients.send', logging.INFO)
186
        add_stream_logger('kamaki.clients.recv', logging.INFO)
187
    add_stream_logger(__name__, logging.WARNING)
197 188
    global kloger
198
    kloger = logging.getLogger('kamaki')
189
    kloger = get_logger(__name__)
199 190

  
200 191

  
201 192
def _init_session(arguments):
b/kamaki/cli/argument.py
34 34
from kamaki.cli.config import Config
35 35
from kamaki.cli.errors import CLISyntaxError, raiseCLIError
36 36
from kamaki.cli.utils import split_input
37
from logging import getLogger
37
from kamaki.logger import get_logger
38 38
from datetime import datetime as dtm
39 39
from time import mktime
40 40

  
......
52 52
    # progress not installed - pls, pip install progress
53 53
    pass
54 54

  
55
kloger = getLogger('kamaki')
55
log = get_logger('kamaki.cli')
56 56

  
57 57

  
58 58
class Argument(object):
......
354 354
        try:
355 355
            KamakiProgressBar
356 356
        except NameError:
357
            kloger.debug('WARNING: no progress bar functionality')
357
            log.debug('WARNING: no progress bar functionality')
358 358

  
359 359
    def clone(self):
360 360
        """Get a modifiable copy of this bar"""
b/kamaki/cli/commands/__init__.py
31 31
# interpreted as representing official policies, either expressed
32 32
# or implied, of GRNET S.A.command
33 33

  
34
from kamaki import logger
34
from kamaki.logger import get_logger
35 35

  
36
logger.add_file_logger('cli', __name__, filename=logger.get_log_filename())
37
sendlog = logger.get_logger('cli')
36
log = get_logger('kamaki.cli')
38 37

  
39 38

  
40 39
class _command_init(object):
......
55 54
                self['config'].get('global', 'log_token') == 'on',
56 55
                self['config'].get('global', 'log_data') == 'on')
57 56
        except Exception as e:
58
            sendlog.warning('Failed to read custom log settings: %s' % e)
59
            sendlog.warning('\tdefaults for token and data logging are off')
57
            log.warning('Failed to read custom log settings: %s' % e)
58
            log.warning('\tdefaults for token and data logging are off')
60 59
            pass
61 60

  
62 61
    def _update_max_threads(self):
......
65 64
            assert max_threads > 0
66 65
            self.client.MAX_THREADS = max_threads
67 66
        except Exception as e:
68
            sendlog.warning('Failed to read custom thread settings: %s' % e)
69
            sendlog.warning(
67
            log.warning('Failed to read custom thread settings: %s' % e)
68
            log.warning(
70 69
                '\tdefault for max threads is %s' % self.client.MAX_THREADS)
71 70
            pass
72 71

  
b/kamaki/cli/commands/errors.py
32 32
# or implied, of GRNET S.A.command
33 33

  
34 34
from traceback import print_stack, print_exc
35
import logging
36 35

  
37 36
from kamaki.clients import ClientError
38 37
from kamaki.cli.errors import CLIError, raiseCLIError, CLISyntaxError
39 38
from kamaki.cli import _debug, kloger
40 39
from kamaki.cli.utils import format_size
41 40

  
42
sendlog = logging.getLogger('clients.send')
43
datasendlog = logging.getLogger('data.send')
44
recvlog = logging.getLogger('clients.recv')
45
datarecvlog = logging.getLogger('data.recv')
46

  
47 41

  
48 42
class generic(object):
49 43

  
b/kamaki/cli/commands/pithos.py
33 33

  
34 34
from sys import stdout
35 35
from time import localtime, strftime
36
from logging import getLogger
37 36
from os import path, makedirs, walk
38 37

  
39 38
from kamaki.cli import command
......
49 48
from kamaki.clients.pithos import PithosClient, ClientError
50 49
from kamaki.clients.astakos import AstakosClient
51 50

  
52

  
53
kloger = getLogger('kamaki')
54

  
55 51
pithos_cmds = CommandTree('file', 'Pithos+/Storage API commands')
56 52
_commands = [pithos_cmds]
57 53

  
b/kamaki/cli/errors.py
31 31
# interpreted as representing official policies, either expressed
32 32
# or implied, of GRNET S.A.
33 33

  
34
import logging
34
from kamaki.logger import get_logger
35 35

  
36
sendlog = logging.getLogger('clients.send')
37
recvlog = logging.getLogger('clients.recv')
36
log = get_logger('kamaki.cli')
38 37

  
39 38

  
40 39
class CLIError(Exception):
......
101 100
    try:
102 101
        stack = [e for e in stack if e != stack[1]]
103 102
    except KeyError:
104
        recvlog.debug('\n   < '.join(stack))
103
        log.debug('\n   < '.join(stack))
105 104

  
106 105
    details = ['%s' % details] if not isinstance(details, list)\
107 106
        else list(details)
b/kamaki/cli/one_command.py
31 31
# interpreted as representing official policies, either expressed
32 32
# or implied, of GRNET S.A.command
33 33

  
34
from logging import getLogger
34
from kamaki.logger import get_logger
35 35

  
36 36
from kamaki.cli import get_command_group, set_command_params
37 37
from kamaki.cli import print_subcommands_help, exec_cmd, update_parser_help
38 38
from kamaki.cli import _groups_help, _load_spec_module
39 39

  
40 40

  
41
kloger = getLogger('kamaki')
41
kloger = get_logger('kamaki.cli')
42 42

  
43 43

  
44 44
def _get_cmd_tree_from_spec(spec, cmd_tree_list):
b/kamaki/clients/__init__.py
42 42

  
43 43
from objpool.http import PooledHTTPConnection
44 44

  
45
from kamaki import logger
45
from kamaki.logger import add_file_logger, get_log_filename
46 46

  
47 47
TIMEOUT = 60.0   # seconds
48 48
HTTP_METHODS = ['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'COPY', 'MOVE']
49 49

  
50
log = logger.add_file_logger(__name__)
51
log.debug('Logging location: %s' % logger.get_log_filename())
52
sendlog = logger.add_file_logger('%s.send' % __name__)
53
recvlog = logger.add_file_logger('%s.recv' % __name__)
50
log = add_file_logger(__name__)
51
log.debug('Logging location: %s' % get_log_filename())
52
sendlog = add_file_logger('%s.send' % __name__)
53
recvlog = add_file_logger('%s.recv' % __name__)
54 54

  
55 55

  
56 56
def _encode(v):
b/kamaki/logger.py
57 57

  
58 58

  
59 59
def _add_logger(name, level=None, filename=None, fmt=None):
60
    log = logging.getLogger(name)
60
    log = get_logger(name)
61 61
    h = logging.FileHandler(filename) if (
62
        filename) else logging.StreamHandler(filename)
63
    h.setFormatter(logging.Formatter(fmt or '%(name)s %(message)s'))
62
        filename) else logging.StreamHandler()
63
    lfmt = logging.Formatter(fmt or '%(name)s\n %(message)s')
64
    h.setFormatter(lfmt)
64 65
    log.addHandler(h)
65 66
    log.setLevel(level or logging.DEBUG)
66 67
    return get_logger(name)
......
77 78

  
78 79
def add_stream_logger(name, level=None):
79 80
    try:
80
        return _add_logger(name, level, fmt='%(name)s\n\t%(message)s')
81
        return _add_logger(name, level)
81 82
    except Exception:
82 83
        return get_logger(name)
83 84

  

Also available in: Unified diff