我試圖在python中使用colorama和日誌記錄模塊獲取彩色日誌。 如果我沒有給任何顏色,那麼它應該打印默認的終端顏色,但是在我的日誌中,如果沒有明確設置顏色,我將獲得以前設置的日誌的顏色。無法使用Colorama明確指定顏色時無法使用默認顏色打印日誌
下面是我的setup_logging.yml文件
import os
import yaml
import logging.config
def setup_logging(
default_path='logging.yml', default_level=logging.INFO, env_key='LOG_CFG'):
path = os.path.join('/etc', 'module', default_path)
value = os.getenv(env_key, None)
if value:
path = value
if os.path.exists(path):
with open(path, 'rt') as f:
config = yaml.load(f.read())
logging.config.dictConfig(config)
else:
logging.basicConfig(level=default_level)
Logging.yml文件
version: 1
disable_existing_loggers: True
formatters:
default:
format: "%(asctime)s - %(name)s - %(levelname)s - \n %(message)s"
handlers:
console:
class: logging.StreamHandler
level: INFO
formatter: default
stream: ext://sys.stdout
info_file_handler:
class: logging.handlers.RotatingFileHandler
level: INFO
formatter: default
filename: /var/log/jsnapy/test.log
maxBytes: 10485760 # 10MB
backupCount: 20
encoding: utf8
我已經剝奪我的代碼記錄功能:
import logging
import colorama
class Test:
def __init__(self):
self.logger = logging.getLogger(__name__)
colorama.init(autoreset=True)
setup_logging.setup_logging()
def testing(self):
self.logger.debug(colorama.Fore.RED + "this is a debugging message")
self.logger.info(colorama.Fore.BLUE+"this is an informational message")
self.logger.warn(colorama.Fore.BLUE+"this is a warning message")
self.logger.error(colorama.Fore.YELLOW + "this is an error message")
self.logger.critical("this is a critical message")
t = Test()
t.testing()
如何獲得默認的顏色在沒有明確指定顏色的日誌中。
我使用colorama.init(自動復位= TRUE)重置顏色沒有指定時默認。 – pjain