python中logging日志的使用
在项目中,可以在配置文件中settings.py中配置日志相关信息,代码如下
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 日志配置
stander_formatter = '[%(name)s- %(levelname)s - %(asctime)s-%(filename)s-%(lineno)d - %(message)s]'
LOGGING_DIR = {
"version": 1,
# 日志格式配置
"formatters": {
"standard": {
"class": "logging.Formatter",
"format": stander_formatter
}
},
# 处理器配置
"handlers": {
# 将人输出在控制台的配置
"console": {
"level": "INFO",
"class": "logging.StreamHandler",
"formatter": "standard"
},
# 日志输出在文件中且日志文件是根据文件大小进行轮训
"default": {
"level": "INFO",
"class": "logging.handlers.RotatingFileHandler",
"formatter": "standard",
"filename": os.path.join(BASE_DIR, 'logs', time.strftime("%Y-%m-%d") + ".log"),
"encoding": "utf-8",
"backupCount": 5,
"maxBytes": 1024 * 1024 * 5
},
# 将日志输出到文件中
"other": {
"level": "INFO",
"class": "logging.FileHandler",
"formatter": "standard",
"filename": os.path.join(BASE_DIR, 'logs', time.strftime("%Y-%m-%d") + ".log"),
"encoding": "utf-8"
}
},
# 日志收集器
"loggers": {
"apilogs": {
"handlers": ['console', 'default'],
"level": "INFO",
"propagate": False
}
}
}
在其他模块使用settings.py中的日志配置
from config.settings import LOGGING_DIR
from logging import config,getLogger
config.dictConfig(LOGGING_DIR)
logger = getLogger('apilogs')
logger.info("这是info信息")