程序--关于logging

之前自己写程序很少用到log,最近在写C++和python时都遇到了这个问题,记录在此。


C++:

#include <glog/logging.h>
#include <gflags/gflags.h>

LOG(INFO) <<fileVec[i]<<endl;

就是把所有之前我在cout的地方改成LOG,可以定义级别


python:

简单标准的写法:

#!/usr/bin/env python
# encoding: utf-8
 
import os
import logging
 
def create_logger(logger_name,
                  log_format=None,
                  log_level=logging.INFO,
                  log_path=None):
    logger = logging.getLogger(logger_name)
    assert (len(logger.handlers) == 0)
    logger.setLevel(log_level)
    if log_path is None:
        handler = logging.StreamHandler()
    else:
        os.stat(os.path.dirname(os.path.abspath(log_path)))
        handler = logging.FileHandler(log_path)
    handler.setLevel(log_level)
    if log_format is not None:
        formatter = logging.Formatter(log_format)
        handler.setFormatter(formatter)
    logger.addHandler(handler)
    return logger
 
logger = create_logger(
    logger_name='template',
    log_format='[%(asctime)s %(name)-13s \
                %(levelname)s %(process)d \
                %(thread)d %(filename)s:%(lineno)-5d] \
                %(message)s',
    log_level=logging.INFO)

标准的脚本例子:

#!/usr/bin/env python
# encoding: utf-8
 
import os
import argparse
import logging
 
 
def create_logger(logger_name,
                  log_format=None,
                  log_level=logging.INFO,
                  log_path=None):
    logger = logging.getLogger(logger_name)
    assert (len(logger.handlers) == 0)
    logger.setLevel(log_level)
    if log_path is None:
        handler = logging.StreamHandler()
    else:
        os.stat(os.path.dirname(os.path.abspath(log_path)))
        handler = logging.FileHandler(log_path)
    handler.setLevel(log_level)
    if log_format is not None:
        formatter = logging.Formatter(log_format)
        handler.setFormatter(formatter)
    logger.addHandler(handler)
    return logger
 
 
logger = create_logger(
    logger_name='template',
    log_format='[%(asctime)s %(name)-13s \
                %(levelname)s %(process)d \
                %(thread)d %(filename)s:%(lineno)-5d] \
                %(message)s',
    log_level=logging.INFO)
 
parser = argparse.ArgumentParser()
parser.add_argument("--a", default=1, type=int, help='one param to add')
parser.add_argument("--b", default=0, type=int, help='another param to add')
args = parser.parse_args()
 
 
def main():
    exit(0)
 
 
if __name__ == '__main__':
    main()



另外贴上一个博客:

https://thief.one/2017/11/10/1/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值