Improve logging

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
This commit is contained in:
Hiroshi Miura
2019-09-28 15:20:20 +09:00
parent 886376d81b
commit acb3366923
3 changed files with 39 additions and 26 deletions

View File

@@ -72,10 +72,7 @@ class QtArchives:
try: try:
r = requests.get(update_xml_url) r = requests.get(update_xml_url)
except requests.exceptions.ConnectionError as e: except requests.exceptions.ConnectionError as e:
print("Caught download error: %s" % e.args) self.logger.error('Download error: %s\n' % e.args, exc_info=True)
exc_buffer = StringIO()
traceback.print_exc(file=exc_buffer)
self.logger.error('Download error:\n%s', exc_buffer.getvalue())
raise e raise e
else: else:
self.update_xml = ElementTree.fromstring(r.text) self.update_xml = ElementTree.fromstring(r.text)
@@ -104,10 +101,7 @@ class QtArchives:
try: try:
r = requests.get(update_xml_url) r = requests.get(update_xml_url)
except requests.exceptions.ConnectionError as e: except requests.exceptions.ConnectionError as e:
print("Caught download error: %s" % e.args) self.logger.error('Download error: %s\n' % e.args, exc_info=True)
exc_buffer = StringIO()
traceback.print_exc(file=exc_buffer)
self.logger.error('Download error:\n%s', exc_buffer.getvalue())
raise e raise e
else: else:
self.update_xml = ElementTree.fromstring(r.text) self.update_xml = ElementTree.fromstring(r.text)

View File

@@ -21,12 +21,12 @@
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import argparse import argparse
import logging
import logging.config import logging.config
import os import os
import platform import platform
import sys import sys
import yaml import yaml
from logging import getLogger
from aqt.archives import QtArchives from aqt.archives import QtArchives
from aqt.installer import QtInstaller from aqt.installer import QtInstaller
@@ -155,15 +155,24 @@ class Cli():
help_parser.set_defaults(func=self.show_help) help_parser.set_defaults(func=self.show_help)
self.parser = parser self.parser = parser
def setup_logging(self, args, env_key='LOG_CFG'):
envconf = os.getenv(env_key, None)
conf = None
if args.logging_conf:
conf=args.logging_conf
elif envconf is not None:
conf = envconf
if conf is None or not os.path.exists(conf):
conf=os.path.join(os.path.dirname(__file__), 'logging.yml')
with open(conf, 'r') as f:
log_config = yaml.safe_load(f.read())
logging.config.dictConfig(log_config)
if args.logger is not None:
self.logger = logging.getLogger(args.logger)
else:
self.logger = logging.getLogger('aqt')
def run(self): def run(self):
args = self.parser.parse_args() args = self.parser.parse_args()
if args.logging_conf: self.setup_logging(args)
log_config = yaml.load(args.logging_conf)
else:
log_config = yaml.load(os.path.join(os.path.dirname(__file__), 'logging.yml'))
logging.config.dictConfig(log_config)
if args.logger is not None:
self.logger = getLogger(args.logger)
else:
self.logger = getLogger('aqt')
args.func(args) args.func(args)

View File

@@ -1,22 +1,32 @@
version: 1 version: 1
disable_existing_loggers: False
formatters: formatters:
simple:
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
brief: brief:
format: '%(message)s' format: '%(message)s'
default:
format: '%(asctime)s %(levelname)-8s %(name)-15s %(message)s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers: handlers:
console: console:
class: logging.StreamHandler class: logging.StreamHandler
level: WARN level: WARN
formatter: brief formatter: brief
stream: ext://sys.stdout stream: ext://sys.stdout
file: file:
class : logging.FileHandler class: logging.FileHandler
formatter: default level: INFO
formatter: simple
filename: aqtinstall.log filename: aqtinstall.log
encoding: utf-8
loggers:
aqt:
level: ERROR
handler: [console]
propagate: yes
root: root:
level: INFO level: INFO
handlers: handlers: [console, file]
- console
- file