1#!/usr/bin/env python3 2# -*- coding: utf-8 -*- 3 4# 5# Copyright (c) 2024 Huawei Device Co., Ltd. 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 20from logging import handlers 21 22 23class LogWrapper: 24 logger = None 25 26 def __init__(self): 27 self.logger = logging.getLogger('log.txt') 28 self.logger.setLevel(logging.DEBUG) 29 # max 1M 30 file_handler = handlers.RotatingFileHandler(filename='log.txt', maxBytes=1 * 1024 * 1024, backupCount=3, 31 encoding='utf-8') 32 format_str = logging.Formatter('%(asctime)s - %(levelname)s: %(message)s') 33 file_handler.setFormatter(format_str) 34 self.logger.addHandler(file_handler) 35 console_handler = logging.StreamHandler() 36 console_handler.setFormatter(format_str) 37 self.logger.addHandler(console_handler) 38 39 40logWrapper = LogWrapper() 41log_debug_enabled = False 42 43 44def enable_debug(flag): 45 global log_debug_enabled 46 log_debug_enabled = flag 47 48 49def log_debug(msg): 50 if log_debug_enabled: 51 logWrapper.logger.debug(msg) 52 53 54def log_info(msg): 55 if log_debug_enabled: 56 logWrapper.logger.info(msg) 57 58 59def log_warning(msg): 60 logWrapper.logger.warning(msg) 61 62 63def log_error(msg): 64 logWrapper.logger.error(msg) 65 66 67def log_critical(msg): 68 logWrapper.logger.critical(msg) 69 70 71def log_message(msg): 72 logWrapper.logger.info(msg)