12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you under the Apache License, Version 2.0 (the
- # "License"); you may not use this file except in compliance
- # with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- # KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations
- # under the License.
- import abc
- import logging
- from logging.handlers import TimedRotatingFileHandler
- import flask.app
- import flask.config
- logger = logging.getLogger(__name__)
- # pylint: disable=too-few-public-methods
- class LoggingConfigurator(abc.ABC):
- @abc.abstractmethod
- def configure_logging(
- self, app_config: flask.config.Config, debug_mode: bool
- ) -> None:
- pass
- class DefaultLoggingConfigurator(LoggingConfigurator):
- def configure_logging(
- self, app_config: flask.config.Config, debug_mode: bool
- ) -> None:
- if app_config["SILENCE_FAB"]:
- logging.getLogger("flask_appbuilder").setLevel(logging.ERROR)
- # configure superset app logger
- superset_logger = logging.getLogger("superset")
- if debug_mode:
- superset_logger.setLevel(logging.DEBUG)
- else:
- # In production mode, add log handler to sys.stderr.
- superset_logger.addHandler(
- logging.StreamHandler()
- ) # pylint: disable=no-member
- superset_logger.setLevel(logging.INFO) # pylint: disable=no-member
- logging.getLogger("pyhive.presto").setLevel(logging.INFO)
- logging.basicConfig(format=app_config["LOG_FORMAT"])
- logging.getLogger().setLevel(app_config["LOG_LEVEL"])
- if app_config["ENABLE_TIME_ROTATE"]:
- logging.getLogger().setLevel(app_config["TIME_ROTATE_LOG_LEVEL"])
- handler = TimedRotatingFileHandler( # type: ignore
- app_config["FILENAME"],
- when=app_config["ROLLOVER"],
- interval=app_config["INTERVAL"],
- backupCount=app_config["BACKUP_COUNT"],
- )
- logging.getLogger().addHandler(handler)
- logger.info("logging was configured successfully")
|