设置日志格式
# 设置日志格式
def create_logger(log_name='ELI', log_file='', log_level='INFO'):
# 清空日志内容
with open(log_file, 'w') as f:
f.truncate() # 清空文件内容
# 设置格式
log_format = '%(asctime)s - %(name)5s - %(levelname)5s : %(message)s'
# 配置保存日志到文件的 Handler
logging.basicConfig(level=log_level,
format=log_format,
filename=log_file)
# 配置输出日志到终端的 Handler
stream_handler = logging.StreamHandler()
stream_handler.setLevel(log_level)
stream_handler.setFormatter(logging.Formatter(log_format))
# 添加 Handler
logging.getLogger(log_name).addHandler(stream_handler)
return logging.getLogger(log_name)
创建日志
# build looger
os.makedirs(args.output_dir, exist_ok=True)
logger = create_logger(log_file=os.path.join(args.output_dir, 'train.log'))
logger.info(f'Device: {
device}')
日志输出
方式一:
logger.info('Training Started!!')
方式二:
logger.info(f'Start Val EPOCH {
epoch}\n')
或
log_str = '[EPOCH :{}/{}] - [BATCH {}/{}] |'.format(epoch, args.epoches, trained_batch, len(train_dataloader))
log_str += ' LR: {}, Loss: {:.6f}'.format(current_lr, laneLocLoss)
logger.info(log_str)
方式三:
log_str = '[EPOCH %02d] - [BATCH %04d/%04d] |' % (epoch, trained_batch, len(train_dataloader))
log_str += ' LR: %6f, Loss: %.4f' % (current_lr, laneLocLoss)
logger.info(log_str)