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-14 17:42 +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# ---------------------------------------------------------------------------- 

18 

19import logging 

20import threading 

21 

22 

23__all__ = ["log_debug", "log_info", "log_warning", "log_error", "close_log", "open_log"] 

24 

25LOG_FORMAT = "%(asctime)s [ASYS] [%(levelname)s]: %(message)s" 

26logging.basicConfig(level=logging.INFO, format=LOG_FORMAT) 

27_LOG_LOCK = threading.RLock() 

28 

29 

30def _log(log_func, log_str, force=False): 

31 with _LOG_LOCK: 

32 if not force: 

33 log_func(log_str) 

34 return 

35 

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) 

42 

43 

44def log_debug(log_str): 

45 _log(logging.debug, log_str) 

46 

47 

48def log_info(log_str, force=False): 

49 _log(logging.info, log_str, force) 

50 

51 

52def log_warning(log_str, force=False): 

53 _log(logging.warning, log_str, force) 

54 

55 

56def log_error(log_str): 

57 _log(logging.error, log_str) 

58 

59 

60def open_log(): 

61 with _LOG_LOCK: 

62 logging.disable(logging.NOTSET) 

63 

64 

65def close_log(): 

66 with _LOG_LOCK: 

67 logging.disable(logging.INFO) 

68 logging.disable(logging.DEBUG) 

69 logging.disable(logging.WARNING)