This commit is contained in:
geekerzp
2015-09-23 14:55:46 +08:00
parent b7d64d1352
commit 13c079342e
4 changed files with 93 additions and 60 deletions

View File

@@ -15,7 +15,7 @@ Copyright 2015 SmartBear Software
See the License for the specific language governing permissions and
limitations under the License.
ref: https://github.com/swagger-api/swagger-codegen
ref: https://github.com/swagger-api/swagger-codegen
"""
from __future__ import absolute_import
@@ -27,10 +27,11 @@ try:
except ImportError:
# for python3
import http.client as httplib
import sys
import logging
from six import iteritems
def singleton(cls, *args, **kw):
instances = {}
@@ -72,36 +73,23 @@ class Configuration(object):
self.password = ""
# Logging Settings
self.logger = {}
self.logger["package_logger"] = logging.getLogger("swagger_client")
self.logger["urllib3_logger"] = logging.getLogger("urllib3")
# Log format
self.logging_format = '%(asctime)s %(levelname)s %(message)s'
# Debug file location
self.__logging_file = None
self.logging_stream_handler = None
self.logging_file_handler = None
self.logging_file = None
# Debug switch
self.__debug = False
self.init_logger()
self.debug = False
# SSL/TLS verification
# Set this to false to skip verifying SSL certificate when calling API from https server.
self.verify_ssl = True
# Set this to customize the certificate file to verify the peer.
self.ssl_ca_cert = None
def init_logger(self):
"""
Initializes logger settings.
"""
self.logger = logging.getLogger()
formatter = logging.Formatter(self.logging_format)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
self.logger.addHandler(stream_handler)
if self.__debug:
self.logger.setLevel(logging.DEBUG)
else:
self.logger.setLevel(logging.WARNING)
if self.__logging_file:
file_handler = logging.FileHandler(self.__logging_file)
file_handler.setFormatter(formatter)
self.logger.addFilter(file_handler)
@property
def logging_file(self):
@@ -111,10 +99,23 @@ class Configuration(object):
def logging_file(self, value):
self.__logging_file = value
if self.__logging_file:
formater = logging.Formatter(self.logging_format)
file_handler = logging.FileHandler(self.__logging_file)
file_handler.setFormatter(formater)
self.logger.addHandler(file_handler)
# If set logging file,
# then add file handler and remove stream handler.
self.logging_file_handler = logging.FileHandler(self.__logging_file)
self.logging_file_handler.setFormatter(self.logging_formatter)
for _, logger in iteritems(self.logger):
logger.addHandler(self.logging_file_handler)
if self.logging_stream_handler:
logger.removeHandler(self.logging_stream_handler)
else:
# If not set logging file,
# then add stream handler and remove file handler.
self.logging_stream_handler = logging.StreamHandler()
self.logging_stream_handler.setFormatter(self.logging_formatter)
for _, logger in iteritems(self.logger):
logger.addHandler(self.logging_stream_handler)
if self.logging_file_handler:
logger.removeHandler(self.logging_file_handler)
@property
def debug(self):
@@ -125,13 +126,26 @@ class Configuration(object):
self.__debug = value
if self.__debug:
# if debug status is True, turn on debug logging
self.logger.setLevel(logging.DEBUG)
for _, logger in iteritems(self.logger):
logger.setLevel(logging.DEBUG)
# turn on httplib debug
httplib.HTTPConnection.debuglevel = 1
else:
# if debug status is False, turn off debug logging,
# setting log level to default `logging.WARNING`
self.logger.setLevel(logging.WARNING)
for _, logger in iteritems(self.logger):
logger.setLevel(logging.WARNING)
# turn off httplib debug
httplib.HTTPConnection.debuglevel = 0
@property
def logging_format(self):
return self.__logging_format
@logging_format.setter
def logging_format(self, value):
self.__logging_format = value
self.logging_formatter = logging.Formatter(self.__logging_format)
def get_api_key_with_prefix(self, identifier):
"""