Coverage for /opt/cloud/slavespace/usr1/096471637100f3de0fcfc01072822a80/ut/src/asys/common/log.py: 94%
32 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-19 17:46 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-19 17:46 +0800
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3# ----------------------------------------------------------------------------
4# Copyright (c) 2025 Huawei Technologies Co., Ltd.
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17# ----------------------------------------------------------------------------
19import logging
20import threading
23__all__ = ["log_debug", "log_info", "log_warning", "log_error", "close_log", "open_log"]
25LOG_FORMAT = "%(asctime)s [ASYS] [%(levelname)s]: %(message)s"
26logging.basicConfig(level=logging.INFO, format=LOG_FORMAT)
27_LOG_LOCK = threading.RLock()
30def _log(log_func, log_str, force=False):
31 with _LOG_LOCK:
32 if not force:
33 log_func(log_str)
34 return
36 disable_level = logging.getLogger().manager.disable
37 logging.disable(logging.NOTSET)
38 try:
39 log_func(log_str)
40 finally:
41 logging.disable(disable_level)
44def log_debug(log_str):
45 _log(logging.debug, log_str)
48def log_info(log_str, force=False):
49 _log(logging.info, log_str, force)
52def log_warning(log_str, force=False):
53 _log(logging.warning, log_str, force)
56def log_error(log_str):
57 _log(logging.error, log_str)
60def open_log():
61 with _LOG_LOCK:
62 logging.disable(logging.NOTSET)
65def close_log():
66 with _LOG_LOCK:
67 logging.disable(logging.INFO)
68 logging.disable(logging.DEBUG)
69 logging.disable(logging.WARNING)