Index: telemetry/telemetry/internal/browser/browser_options.py |
diff --git a/telemetry/telemetry/internal/browser/browser_options.py b/telemetry/telemetry/internal/browser/browser_options.py |
index d2ba8fa39c06de694737c3055cc42eaaf5e57c11..21dddcc7e5973fa6e7ff7990dcc5af2a44c191e4 100644 |
--- a/telemetry/telemetry/internal/browser/browser_options.py |
+++ b/telemetry/telemetry/internal/browser/browser_options.py |
@@ -230,6 +230,15 @@ class BrowserFinderOptions(optparse.Values): |
class BrowserOptions(object): |
"""Options to be used for launching a browser.""" |
+ |
+ # Levels of browser logging. |
+ NO_LOGGING = 'none' |
+ NON_VERBOSE_LOGGING = 'non-verbose' |
+ VERBOSE_LOGGING = 'verbose' |
+ |
+ _LOGGING_LEVELS = (NO_LOGGING, NON_VERBOSE_LOGGING, VERBOSE_LOGGING) |
+ _DEFAULT_LOGGING_LEVEL = NO_LOGGING |
+ |
def __init__(self): |
self.browser_type = None |
self.show_stdout = False |
@@ -266,7 +275,8 @@ class BrowserOptions(object): |
# Disable default apps. |
self.disable_default_apps = True |
- self.enable_logging = False |
+ self.logging_verbosity = self._DEFAULT_LOGGING_LEVEL |
+ |
# The cloud storage bucket & path for uploading logs data produced by the |
# browser to. |
# If logs_cloud_remote_path is None, a random remote path is generated every |
@@ -324,12 +334,20 @@ class BrowserOptions(object): |
group.add_option('--show-stdout', |
action='store_true', |
help='When possible, will display the stdout of the process') |
+ |
+ group.add_option('--browser-logging-verbosity', |
+ dest='logging_verbosity', |
+ type='choice', |
+ choices=cls._LOGGING_LEVELS, |
+ help=('Browser logging verbosity. The log file is saved in temp ' |
+ "directory. Note that logging affects the browser's " |
+ 'performance. Supported values: %s. Defaults to %s.' % ( |
+ ', '.join(cls._LOGGING_LEVELS), cls._DEFAULT_LOGGING_LEVEL))) |
group.add_option('--enable-browser-logging', |
dest='enable_logging', |
action='store_true', |
- help=('Enable browser logging. The log file is saved in temp directory.' |
- "Note that enabling this flag affects the browser's " |
- 'performance')) |
+ help=('This flag is deprecated and will be removed after August 31, ' |
+ '2016. Please use --browser-logging-verbosity instead.')) |
parser.add_option_group(group) |
group = optparse.OptionGroup(parser, 'Compatibility options') |
@@ -342,7 +360,6 @@ class BrowserOptions(object): |
browser_options_list = [ |
'extra_browser_args_as_string', |
'extra_wpr_args_as_string', |
- 'enable_logging', |
'profile_dir', |
'profile_type', |
'show_stdout', |
@@ -385,10 +402,43 @@ class BrowserOptions(object): |
if not self.profile_dir: |
self.profile_dir = profile_types.GetProfileDir(self.profile_type) |
+ if getattr(finder_options, 'enable_logging'): |
+ if getattr(finder_options, 'logging_verbosity'): |
+ # Both --enable-browser-logging and --browser-logging-verbosity were |
+ # provided (fail). |
+ logging.critical("It's illegal to provide both --enable-browser-logging" |
+ ' and --browser-logging-verbosity.') |
+ sys.exit(1) |
+ # Only --enable-browser-logging was provided. |
+ self.logging_verbosity = self.VERBOSE_LOGGING |
+ delattr(finder_options, 'enable_logging') |
+ elif getattr(finder_options, 'logging_verbosity'): |
+ # Only --browser-logging-verbosity was provided (verbose logging). |
+ self.logging_verbosity = finder_options.logging_verbosity |
+ delattr(finder_options, 'logging_verbosity') |
+ |
# This deferred import is necessary because browser_options is imported in |
# telemetry/telemetry/__init__.py. |
finder_options.browser_options = CreateChromeBrowserOptions(self) |
+ # Deprecated: Please use |logging_verbosity| instead. |
+ @property |
+ def enable_logging(self): |
+ logging.warning('enable_logging is deprecated and will be removed after ' |
+ 'August 31, 2016. Please use logging_verbosity instead.') |
+ return self.logging_verbosity in [self.NON_VERBOSE_LOGGING, |
+ self.VERBOSE_LOGGING] |
+ |
+ # Deprecated: Please use |logging_verbosity| instead. |
+ @enable_logging.setter |
+ def enable_logging(self, value): |
+ logging.warning('enable_logging is deprecated and will be removed after ' |
+ 'August 31, 2016. Please use logging_verbosity instead.') |
+ if value: |
+ self.logging_verbosity = self.NON_VERBOSE_LOGGING |
+ else: |
+ self.logging_verbosity = self.NO_LOGGING |
+ |
@property |
def finder_options(self): |
return self._finder_options |