Python详细教程:如何将日志写入文件
python将日志写入文件(超详细)
1、需求
训练模型时候,训练日志在控制台展示,关闭控制台后日志会消失。这时,我们需要将控制台中的训练日志信息输出到一个指定文件中,方便我们随时查看。
将控制台中的日志信息输入到当前目录下的application.log文件中
2、方法:python logging模块
logging 是Python中非常强大且灵活的库,用于记录和跟踪应用程序运行时发生的事件。
在Python中,使用 logging 模块可以写入日志信息到指定文件。
2.1 basicConfig() 快速配置
import logging
import warnings
# 忽略所有 UserWarning 警告
warnings.filterwarnings("ignore", category=UserWarning)
# 1、设置全局的日志格式和级别
logging.basicConfig(format='%(asctime)s - %(levelname)s - %(name)s - %(message)s',
datefmt='%m/%d/%Y %H:%M:%S',
level=logging.INFO)
# 2、获取logger (给日志器起个名字 "__name__")
logger = logging.getLogger(__name__)# __name__内置变量模块名称,轻松地识别出哪个模块产生了哪些日志消息(主程序模块)
# 3、创建文件处理器,指定日志文件和日志级别(局部)---文件输出FileHandle(输出到指定文件)
file_handler = logging.FileHandler('application.log') #指定日志文件名application.log,默认在当前目录下创建
file_handler.setLevel(logging.INFO) # 设置日志级别(只输出对应级别INFO的日志信息)
# 设置日志格式
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s', '%m/%d/%Y %H:%M:%S'))
# 4、添加文件处理器到logger
logger.addHandler(file_handler)
# 训练模型的代码
epoch = 7
# 记录日志信息
logger.info("Get better performance at epoch {}".format(epoch))
# 在主类中编写日志代码
# 判断当前程序是否为主程序,确保 main() 函数只在直接运行该Python文件时执行,如果文件被其他模块导入,则不执行 main()
# 主程序内置变量 __name__
if __name__ == "__main__":
main()
2.2 查看application.log日志文件
2.3、logging知识
StreamHandler
(控制台输出)和FileHandle
(文件输出)2.4、日志级别
debug,info,warning,error,critical
。
作者:风也温柔☆