| |
| import time |
| import os |
| import logging |
| |
| path = os.path.dirname(os.path.abspath(__file__)).rsplit("\\", 1)[0] |
| |
| |
| class LogUtils: |
| |
| def __init__(self): |
| self.logfile_path = path + "\logs" |
| |
| self.logger = logging.getLogger(__name__) |
| |
| self.logger.setLevel(level=logging.INFO) |
| |
| formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') |
| |
| self.log_name_path = os.path.join(self.logfile_path, "Logs_Test_%s" % time.strftime('%Y_%m_%d')) |
| |
| self.file_log = logging.FileHandler(self.log_name_path, 'a', encoding='utf-8') |
| |
| self.file_log.setFormatter(formatter) |
| |
| self.file_log.setLevel(logging.INFO) |
| |
| self.logger.addHandler(self.file_log) |
| self.file_log.close() |
| |
| self.console = logging.StreamHandler() |
| |
| self.console.setLevel(logging.INFO) |
| |
| self.console.setFormatter(formatter) |
| |
| self.logger.addHandler(self.console) |
| |
| self.console.close() |
| |
| def get_log(self): |
| return self.logger |
| |
| |
| logger = LogUtils().get_log() |
| |
| if __name__ == '__main__': |
| logger.info("hahah") |
| |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人