12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #
- # Copyright 2019 The FATE Authors. All Rights Reserved.
- #
- # Licensed 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 os
- import sys
- from pathlib import Path
- import loguru
- from pipeline.backend.config import LogPath, LogFormat, PipelineConfig
- RUNTIME_LOG = "runtime"
- info_log_path = os.path.join(LogPath.log_directory(), LogPath.INFO)
- debug_log_path = os.path.join(LogPath.log_directory(), LogPath.DEBUG)
- error_log_path = os.path.join(LogPath.log_directory(), LogPath.ERROR)
- def runtime_log_only(record):
- log_type = record["extra"].get("log_type", "")
- return log_type == RUNTIME_LOG
- LOGGER = loguru.logger
- LOGGER.remove()
- LOGGER.configure(extra={"format": LogFormat.NORMAL})
- if PipelineConfig.CONSOLE_DISPLAY_LOG:
- console_handler = LOGGER.add(sys.stderr, level="INFO", colorize=True,
- filter=runtime_log_only)
- LOGGER.add(Path(info_log_path).resolve(), level="INFO", rotation="500MB",
- colorize=True, filter=runtime_log_only)
- LOGGER.add(Path(debug_log_path).resolve(), level="DEBUG", rotation="500MB", colorize=True,
- filter=runtime_log_only)
- LOGGER.add(Path(error_log_path).resolve(), level="ERROR", rotation="500MB", colorize=True,
- backtrace=True, filter=runtime_log_only)
- LOGGER = LOGGER.bind(log_type=RUNTIME_LOG)
- def disable_console_log():
- """
- disable logging to stderr, for silent mode
- Returns
- -------
- """
- try:
- LOGGER.remove(console_handler)
- except BaseException:
- pass
- def enable_console_log():
- disable_console_log()
- global console_handler
- console_handler = LOGGER.add(sys.stderr, level="INFO", colorize=True,
- filter=runtime_log_only)
|