python 利用logging将训练结果输出到控制台,同时保存到日志

本文介绍了一种使用Python的logging模块来同时输出日志到控制台和文件的方法,并展示了如何定制日志格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将训练结果输出到控制台,同时保存在日志文件中,且可以控制输出的格式

import logging
def get_log(file_name):
    logger = logging.getLogger('train')  # 设定logger的名字
    logger.setLevel(logging.INFO)  # 设定logger得等级

    ch = logging.StreamHandler()  # 输出流的hander,用与设定logger的各种信息
    ch.setLevel(logging.INFO)  # 设定输出hander的level

    fh = logging.FileHandler(file_name, mode='a')  # 文件流的hander,输出得文件名称,以及mode设置为覆盖模式
    fh.setLevel(logging.INFO)  # 设定文件hander得lever
    formatter = logging.Formatter('[%(asctime)s]\n%(message)s')
    ch.setFormatter(formatter)  # 两个hander设置个是,输出得信息包括,时间,信息得等级,以及message
    fh.setFormatter(formatter)
    logger.addHandler(fh)  # 将两个hander添加到我们声明的logger中去
    logger.addHandler(ch)
    return logger

##  声明
logger = get_log('log.txt')

使用方式举例:

D_logs = "A: 2.22 B: 2.33 errD2: 2.16 C: 0.77"
G_logs = "D: 12.36 E: 10.17 F: 24.69 G: 5.09 H: 8.38 I: 2.97 G: 1.50"

for i in range(0,10):
    logger.info(D_logs + '\n' + G_logs)

## 利用上述声明的logger可以直接代替print输出到控制台,而且可以保存在日志文件中
logger.info('''[%d/%d][%d]
                        Loss_D: %.2f Loss_G: %.2f Time: %.2fs'''
                        % (20, 600, 3000, 7.91 , 49.42, 3346.65))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值