Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: devil/devil/utils/logging_common.py

Issue 2972253002: [devil] Extract logging common behavior to its own module. (Closed)
Patch Set: mikecase comments and rebase Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « devil/devil/android/tools/screenshot.py ('k') | devil/devil/utils/run_tests_helper.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright 2017 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Helper functions common to native, java and host-driven test runners."""
6
7 import logging 5 import logging
8 import sys 6 import sys
9 import time 7 import time
10 8
11 9
10 def AddLoggingArguments(parser):
11 parser.add_argument(
12 '-v', '--verbose', action='count', default=0,
13 help='Log more. Use multiple times for even more logging.')
14
15
16 def InitializeLogging(args, handler=None):
17 if args.verbose == 0:
18 log_level = logging.WARNING
19 elif args.verbose == 1:
20 log_level = logging.INFO
21 else:
22 log_level = logging.DEBUG
23 logger = logging.getLogger()
24 logger.setLevel(log_level)
25 if not handler:
26 handler = logging.StreamHandler(sys.stdout)
27 handler.setFormatter(CustomFormatter())
28 logger.addHandler(handler)
29
30
12 class CustomFormatter(logging.Formatter): 31 class CustomFormatter(logging.Formatter):
13 """Custom log formatter.""" 32 """Custom log formatter."""
14 33
15 # override 34 # override
16 def __init__(self, fmt='%(threadName)-4s %(message)s'): 35 def __init__(self, fmt='%(threadName)-4s %(message)s'):
17 # Can't use super() because in older Python versions logging.Formatter does 36 # Can't use super() because in older Python versions logging.Formatter does
18 # not inherit from object. 37 # not inherit from object.
19 logging.Formatter.__init__(self, fmt=fmt) 38 logging.Formatter.__init__(self, fmt=fmt)
20 self._creation_time = time.time() 39 self._creation_time = time.time()
21 40
22 # override 41 # override
23 def format(self, record): 42 def format(self, record):
24 # Can't use super() because in older Python versions logging.Formatter does 43 # Can't use super() because in older Python versions logging.Formatter does
25 # not inherit from object. 44 # not inherit from object.
26 msg = logging.Formatter.format(self, record) 45 msg = logging.Formatter.format(self, record)
27 if 'MainThread' in msg[:19]: 46 if 'MainThread' in msg[:19]:
28 msg = msg.replace('MainThread', 'Main', 1) 47 msg = msg.replace('MainThread', 'Main', 1)
29 timediff = time.time() - self._creation_time 48 timediff = time.time() - self._creation_time
30 return '%s %8.3fs %s' % (record.levelname[0], timediff, msg) 49 return '%s %8.3fs %s' % (record.levelname[0], timediff, msg)
31 50
32
33 def SetLogLevel(verbose_count, add_handler=True):
34 """Sets log level as |verbose_count|.
35
36 Args:
37 verbose_count: Verbosity level.
38 add_handler: If true, adds a handler with |CustomFormatter|.
39 """
40 log_level = logging.WARNING # Default.
41 if verbose_count == 1:
42 log_level = logging.INFO
43 elif verbose_count >= 2:
44 log_level = logging.DEBUG
45 logger = logging.getLogger()
46 logger.setLevel(log_level)
47 if add_handler:
48 custom_handler = logging.StreamHandler(sys.stdout)
49 custom_handler.setFormatter(CustomFormatter())
50 logging.getLogger().addHandler(custom_handler)
OLDNEW
« no previous file with comments | « devil/devil/android/tools/screenshot.py ('k') | devil/devil/utils/run_tests_helper.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698