Repository: Qiskit/qiskit

Issue:
`set_qiskit_logger()` is hard to use
<!-- ⚠️ If you do not respect this template, your issue will be closed -->
<!-- ⚠️ Make sure to browse the opened and closed issues to confirm this idea does not exist. -->

### What is the expected enhancement?
A utility method `[set_qiskit_logger()]`(https://github.com/Qiskit/qiskit-terra/blob/cac7c6a2631d76ef3e811a5c943a2b9101fed240/qiskit/_logging.py#L48) exists to log qiskit-terra's execution flow.

It has room for improvement, namely:
- It turns on logging everywhere, thus generating a lot of noise. One should be able to specify a certain file to or module to log.
- One cannot customize the LOG_LEVEL.


Discussion:
Yes! Actually, with the removal of `QuantumProgram`, it might be worth just assume that the user will use the facilities provided by Python for dealing with logger levels directly (for example, the case that you mention of only turning logging on for a specific module would be possible - most IDEs, etc will have facilities for those as well) instead of providing the functions. These have always been "convenience functions", but were more relevant with `QuantumProgram` as it acted as a central "god object" of sorts - now their purpose seems a bit more diluted indeed (and we might end up reinventing the wheel if we implement more logic there).

I'd actually lean towards either removing the functions, or move them to the wrapper layer (and perhaps also make a round of revising how we are using `log.info` vs `log.debug`, etc to try to reduce the default verbosity): if there is a need for "easy toggle" of logging, they can use it from the wrapper, and if the user needs finer grained control (or they are using terra fully as a library) they should just use the standard Python mechanisms directly.
Removing the `discussion` label, since the wrapper is not a thing that exists anymore. The problem of "fixing" the logger still exists tho. Probably, the best would be to remove it all together... 

Resolving patch:
diff --git a/qiskit/tools/logging.py b/qiskit/tools/logging.py
deleted file mode 100644
--- a/qiskit/tools/logging.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# This code is part of Qiskit.
-#
-# (C) Copyright IBM 2017.
-#
-# This code is licensed under the Apache License, Version 2.0. You may
-# obtain a copy of this license in the LICENSE.txt file in the root directory
-# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
-#
-# Any modifications or derivative works of this code must retain this
-# copyright notice, and modified files need to carry a notice indicating
-# that they have been altered from the originals.
-
-"""Utilities for logging."""
-
-import logging
-from logging.config import dictConfig
-
-
-class SimpleInfoFormatter(logging.Formatter):
-    """Custom Formatter that uses a simple format for INFO."""
-    _style_info = logging._STYLES['%'][0]('%(message)s')
-
-    def formatMessage(self, record):
-        if record.levelno == logging.INFO:
-            return self._style_info.format(record)
-        return logging.Formatter.formatMessage(self, record)
-
-
-QISKIT_LOGGING_CONFIG = {
-    'version': 1,
-    'disable_existing_loggers': False,
-    'formatters': {
-        'f': {
-            '()': SimpleInfoFormatter,
-            'format': '%(asctime)s:%(name)s:%(levelname)s: %(message)s'
-        },
-    },
-    'handlers': {
-        'h': {
-            'class': 'logging.StreamHandler',
-            'formatter': 'f'
-        }
-    },
-    'loggers': {
-        'qiskit': {
-            'handlers': ['h'],
-            'level': logging.INFO,
-        },
-    }
-}
-
-
-def set_qiskit_logger():
-    """Update 'qiskit' logger configuration using a SDK default one.
-
-    Update the configuration of the 'qiskit' logger using the default SDK
-    configuration provided by `QISKIT_LOGGING_CONFIG`:
-
-    * console logging using a custom format for levels != INFO.
-    * console logging with simple format for level INFO.
-    * set logger level to INFO.
-
-    Warning:
-        This function modifies the configuration of the standard logging system
-        for the 'qiskit.*' loggers, and might interfere with custom logger
-        configurations.
-    """
-    dictConfig(QISKIT_LOGGING_CONFIG)
-
-
-def unset_qiskit_logger():
-    """Remove the handlers for the 'qiskit' logger."""
-    qiskit_logger = logging.getLogger('qiskit')
-    for handler in qiskit_logger.handlers:
-        qiskit_logger.removeHandler(handler)


Test patch: