|
python将日志写入文件(超详细)1、需求我们在训练模型的时候,有时候需要将训练日志输出到一个文件中,方便随时查看训练日志。训练模型时候,训练日志在控制台展示,关闭控制台后日志会消失。这时,我们需要将控制台中的训练日志信息输出到一个指定文件中,方便我们随时查看。将控制台中的日志信息输入到当前目录下的application.log文件中2、方法:pythonlogging模块logging是Python中非常强大且灵活的库,用于记录和跟踪应用程序运行时发生的事件。在Python中,使用logging模块可以写入日志信息到指定文件。1232.1basicConfig()快速配置导入logging模块设置全局的日志格式和级别获取logger创建文件处理器,指定日志文件和日志级别(局部)添加文件处理器到loggerimportloggingimportwarnings#忽略所有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、添加文件处理器到loggerlogger.addHandler(file_handler)#训练模型的代码epoch=7#记录日志信息logger.info("Getbetterperformanceatepoch{}".format(epoch))#在主类中编写日志代码#判断当前程序是否为主程序,确保main()函数只在直接运行该Python文件时执行,如果文件被其他模块导入,则不执行main()#主程序内置变量__name__if__name__=="__main__":main()1234567891011121314151617181920212223242526272829303132332.2查看application.log日志文件2.3、logging知识Loggers:应用程序中使用的接口,用于发送日志消息。它们来自logging.getLogger(name),name是用于标识logger源的字符串Handlers:用于配置日志处理的目的地,如文件、控制台等。常用的有StreamHandler(控制台输出)和FileHandle(文件输出)Formatters:定义最终输出中日志记录的布局Filters:提供更细粒度的工具来进一步控制哪些日志记录将被输出2.4、日志级别debug,info,warning,error,critical1DEBUG:详细信息,通常只有在诊断问题时才感兴趣。INFO:证明事情按预期工作(最常用)WARNING:某些还不是错误的事情的指示,但是应该注意的。ERROR:由于某些更严重的问题,软件已不能执行一些功能了CRITICAL:严重错误,表明程序已不能继续运行。。
|
|