python loger 模板
一、python loger 模板
def init_logger(app_flask):
log_conf_dir = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"standard": {
# 其中name为getlogger指定的名字
"format": "[%(asctime)s][%(threadName)s:%(thread)d][%(name)s][%(filename)s:%(lineno)d][%(levelname)s] %(message)s"
}
},
"filters": {},
"handlers": {
# 打印到终端的日志
"console": {
"level": "DEBUG",
# 打印到屏幕
"class": "logging.StreamHandler",
"formatter": "standard",
},
# 打印到文件的日志,收集info及以上的日志
"default": {
"level": "INFO",
# 保存到文件
"class": "logging.handlers.RotatingFileHandler",
"formatter": "standard",
"filename": LOG_FILE_NAME,
# 日志大小 5M
"maxBytes": 1024 * 1024 * 5,
"backupCount": 5,
"encoding": "utf-8",
},
# 打印到文件的日志:收集错误及以上的日志
"error": {
"level": "ERROR",
"class": "logging.handlers.RotatingFileHandler",
"filename": LOG_ERROR_FILE_NAME,
"maxBytes": 1024 * 1024 * 5,
"backupCount": 5,
"formatter": "standard",
"encoding": "utf-8",
},
},
"loggers": {
# logging.getLogger(__name__)拿到的logger配置
app_name: {
"handlers": [
"default",
"console",
"error",
],
"level": LOG_LEVEL,
# True 向上(更高level的logger)传递
"propagate": False,
},
# werkzeug 底层的日志
"werkzeug": {
"handlers": [
"default",
"console",
"error",
],
"level": "ERROR",
"propagate": False,
},
},
}
dictConfig(log_conf_dir)
``def init_logger(app_flask):
log_conf_dir = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"standard": {
# 其中name为getlogger指定的名字
"format": "[%(asctime)s][%(threadName)s:%(thread)d][%(name)s][%(filename)s:%(lineno)d][%(levelname)s] %(message)s"
}
},
"filters": {},
"handlers": {
# 打印到终端的日志
"console": {
"level": "DEBUG",
# 打印到屏幕
"class": "logging.StreamHandler",
"formatter": "standard",
},
# 打印到文件的日志,收集info及以上的日志
"default": {
"level": "INFO",
# 保存到文件
"class": "logging.handlers.RotatingFileHandler",
"formatter": "standard",
"filename": LOG_FILE_NAME,
# 日志大小 5M
"maxBytes": 1024 * 1024 * 5,
"backupCount": 5,
"encoding": "utf-8",
},
# 打印到文件的日志:收集错误及以上的日志
"error": {
"level": "ERROR",
"class": "logging.handlers.RotatingFileHandler",
"filename": LOG_ERROR_FILE_NAME,
"maxBytes": 1024 * 1024 * 5,
"backupCount": 5,
"formatter": "standard",
"encoding": "utf-8",
},
},
"loggers": {
# logging.getLogger(__name__)拿到的logger配置
app_name: {
"handlers": [
"default",
"console",
"error",
],
"level": LOG_LEVEL,
# True 向上(更高level的logger)传递
"propagate": False,
},
# werkzeug 底层的日志
"werkzeug": {
"handlers": [
"default",
"console",
"error",
],
"level": "ERROR",
"propagate": False,
},
},
}
dictConfig(log_conf_dir)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人