Exemple #1
0
def test_configure_logging_yaml():
    logging_config = tempfile.NamedTemporaryFile(delete=False)
    logging_config.write(b"""
version: 1
disable_existing_loggers: False
formatters:
    test_formatter:
        format: '[%(asctime)s] %(levelname)s - %(message)s'
handlers:
    test_handler:
        level: WARN
        formatter: test_formatter
        class: logging.StreamHandler
        stream: ext://sys.stdout
loggers:
    test_logger:
        handlers: [test_handler]
        level: WARN
        propagate: False""")
    logging_config.close()

    os.environ["BENTOML__LOGGING__LOGGING_CONFIG"] = logging_config.name

    configure_logging()

    bentoml_logger = logging.getLogger("test_logger")
    assert bentoml_logger.level == logging.WARN
    assert bentoml_logger.propagate is False
    assert len(bentoml_logger.handlers) == 1
    assert bentoml_logger.handlers[0].name == "test_handler"

    os.remove(logging_config.name)
    del os.environ["BENTOML__LOGGING__LOGGING_CONFIG"]
Exemple #2
0
def test_configure_logging_advanced():
    advanced_config = {
        "version": 1,
        "disable_existing_loggers": False,
        "formatters": {
            "test_formatter": {"format": "[%(asctime)s] %(levelname)s - %(message)s"}
        },
        "handlers": {
            "test_handler": {
                "level": "WARN",
                "formatter": "test_formatter",
                "class": "logging.StreamHandler",
                "stream": "ext://sys.stdout",
            }
        },
        "loggers": {
            "test_logger": {
                "handlers": ["test_handler"],
                "level": "WARN",
                "propagate": False,
            }
        },
    }

    configure_logging(advanced_enabled=True, advanced_config=advanced_config)

    bentoml_logger = logging.getLogger("test_logger")
    assert bentoml_logger.level == logging.WARN
    assert bentoml_logger.propagate is False
    assert len(bentoml_logger.handlers) == 1
    assert bentoml_logger.handlers[0].name == "test_handler"
Exemple #3
0
def set_debug_mode(enabled: bool):
    os.environ[DEBUG_ENV_VAR] = str(enabled)

    # reconfigure logging
    from bentoml.utils.log import configure_logging

    configure_logging()

    logger.debug(
        f"Setting debug mode: {'ON' if enabled else 'OFF'} for current session"
    )
Exemple #4
0
def _reset_bentoml_home(new_bentoml_home_directory):
    global _config  # pylint: disable=global-statement
    global DEFAULT_BENTOML_HOME, BENTOML_HOME  # pylint: disable=global-statement

    DEFAULT_BENTOML_HOME = new_bentoml_home_directory
    BENTOML_HOME = new_bentoml_home_directory

    # reload config
    _config = load_config()

    # re-config logging
    from bentoml.utils.log import configure_logging

    root = logging.getLogger()
    map(root.removeHandler, root.handlers[:])
    map(root.removeFilter, root.filters[:])
    configure_logging()
Exemple #5
0
def test_configure_logging_file_disabled():
    configure_logging(file_logging_enabled=False)

    bentoml_logger = logging.getLogger("bentoml")
    assert bentoml_logger.level == logging.INFO
    assert bentoml_logger.propagate is False
    assert len(bentoml_logger.handlers) == 1
    assert bentoml_logger.handlers[0].name == "console"

    prediction_logger = logging.getLogger("bentoml.prediction")
    assert prediction_logger.level == logging.INFO
    assert prediction_logger.propagate is False
    assert len(prediction_logger.handlers) == 1
    assert prediction_logger.handlers[0].name == "console"

    feedback_logger = logging.getLogger("bentoml.feedback")
    assert feedback_logger.level == logging.INFO
    assert feedback_logger.propagate is False
    assert len(feedback_logger.handlers) == 1
    assert feedback_logger.handlers[0].name == "console"
Exemple #6
0
def test_configure_logging_default():
    configure_logging()

    bentoml_logger = logging.getLogger("bentoml")
    assert bentoml_logger.level == logging.INFO
    assert bentoml_logger.propagate is False
    assert len(bentoml_logger.handlers) == 2
    assert bentoml_logger.handlers[0].name == "console"
    assert bentoml_logger.handlers[1].name == "local"

    prediction_logger = logging.getLogger("bentoml.prediction")
    assert prediction_logger.level == logging.INFO
    assert prediction_logger.propagate is False
    assert len(prediction_logger.handlers) == 2
    assert prediction_logger.handlers[0].name == "console"
    assert prediction_logger.handlers[1].name == "prediction"

    feedback_logger = logging.getLogger("bentoml.feedback")
    assert feedback_logger.level == logging.INFO
    assert feedback_logger.propagate is False
    assert len(feedback_logger.handlers) == 2
    assert feedback_logger.handlers[0].name == "console"
    assert feedback_logger.handlers[1].name == "feedback"
Exemple #7
0
def test_configure_logging_console_disabled():
    os.environ["BENTOML__LOGGING__FILE_LOGGING_ENABLED"] = "false"

    configure_logging()

    bentoml_logger = logging.getLogger("bentoml")
    assert bentoml_logger.level == logging.INFO
    assert bentoml_logger.propagate is False
    assert len(bentoml_logger.handlers) == 1
    assert bentoml_logger.handlers[0].name == "console"

    prediction_logger = logging.getLogger("bentoml.prediction")
    assert prediction_logger.level == logging.INFO
    assert prediction_logger.propagate is False
    assert len(prediction_logger.handlers) == 1
    assert prediction_logger.handlers[0].name == "console"

    feedback_logger = logging.getLogger("bentoml.feedback")
    assert feedback_logger.level == logging.INFO
    assert feedback_logger.propagate is False
    assert len(feedback_logger.handlers) == 1
    assert feedback_logger.handlers[0].name == "console"

    del os.environ["BENTOML__LOGGING__FILE_LOGGING_ENABLED"]
Exemple #8
0
        def wrapper(quiet, verbose, *args, **kwargs):
            if verbose:
                from bentoml import config

                config().set('core', 'debug', 'true')
                configure_logging(logging.DEBUG)
            elif quiet:
                configure_logging(logging.ERROR)
            else:
                configure_logging()  # use default setting in local bentoml.cfg

            return func(*args, **kwargs)
Exemple #9
0
    def bentoml_cli(ctx, verbose, quiet):
        """
        BentoML CLI tool
        """
        ctx.verbose = verbose
        ctx.quiet = quiet

        if verbose:
            configure_logging(logging.DEBUG)
        elif quiet:
            configure_logging(logging.ERROR)
        else:
            configure_logging()  # use default setting in local bentoml.cfg
Exemple #10
0
    def bentoml_cli(ctx, debug, quiet):
        """
        BentoML CLI tool
        """
        ctx.debug = debug
        ctx.quiet = quiet

        if debug:
            configure_logging(logging.DEBUG)
        elif quiet:
            configure_logging(logging.WARNING)
        else:
            configure_logging()  # use default setting in local bentoml.cfg
Exemple #11
0
    def bentoml_cli(ctx, verbose, quiet):
        """
        BentoML CLI tool
        """
        ctx.verbose = verbose
        ctx.quiet = quiet

        if verbose:
            from bentoml import config

            config().set('core', 'debug', 'true')
            configure_logging(logging.DEBUG)
        elif quiet:
            configure_logging(logging.ERROR)
        else:
            configure_logging()  # use default setting in local bentoml.cfg
Exemple #12
0
# limitations under the License.

from ._version import get_versions

__version__ = get_versions()['version']
del get_versions

from bentoml.configuration import inject_dependencies
from bentoml.utils.log import configure_logging


# Inject dependencies and configurations
inject_dependencies()

# Configuring logging properly before loading other modules
configure_logging()

from bentoml.saved_bundle import load_from_dir, save_to_dir  # noqa: E402
from bentoml.service import (  # noqa: E402
    BentoService,
    api_decorator as api,
    env_decorator as env,
    web_static_content_decorator as web_static_content,
    artifacts_decorator as artifacts,
    ver_decorator as ver,
    save,
)

from bentoml.cli import create_bentoml_cli

commandline_interface = create_bentoml_cli()
Exemple #13
0
import os
import sys
import logging

from bentoml import bundler
from bentoml.cli import create_bento_service_cli
from bentoml.utils.log import configure_logging

# By default, ignore warnings when loading BentoService installed as PyPI distribution
# CLI will change back to default log level in config(info), and by adding --quiet or
# --verbose CLI option, user can change the CLI output behavior
configure_logging(logging.ERROR)

__VERSION__ = "20200206150926_DCA9FA"

__module_path = os.path.abspath(os.path.dirname(__file__))

WordEmbeddingModel = bundler.load_bento_service_class(__module_path)

cli=create_bento_service_cli(__module_path)


def load():
    return bundler.load(__module_path)


__all__ = ['__version__', 'WordEmbeddingModel', 'load']