美文网首页python自制小工具
python使用日志系统--Apple的学习笔记

python使用日志系统--Apple的学习笔记

作者: applecai | 来源:发表于2021-09-09 20:13 被阅读0次

    一,前言

    之前QT工程已经学习了日志系统35.QT重定向日志系统--Apple的学习笔记,对于一个正规的App基本上都带有日志系统,便于调试记录问题。我最近在开发python小工具,之前遇到的问题是自定义的所谓系统日志无法输出到我定义的error.txt,因为我没想到使用python自带的日志模块功能。

    二,需求

    python日志系统模块使用,主要是能捕获系统自带报错。

    三,设计

    网上学习了下,原来用法和我之前QT中用的spdlog日志库的api功能类似。所以很容易理解这些api。
    其中最关键的就是exc_info=True,为True则可以输出系统错误日志。为False则不会输出,只能输出我写入的内容。

    import traceback,logging
    import csv
    import os
    ......
    if __name__ == "__main__":
        try:
            readcsv()
        except Exception as e:
            log = logging.getLogger("log error")
            fmt = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
            # 创建一个handler,用于写入日志文件
            rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
            log_path = os.path.dirname(os.getcwd()) + '/logs/'
            log_name = log_path + 'log.txt'
            logfile = log_name
            file = logging.FileHandler(logfile, mode='w')
            log.setLevel("DEBUG")
            file.setFormatter(fmt)
            log.addHandler(file)
            # 将堆栈中的信息输入到log上
            #log.debug(traceback.format_exc())
            log.info(u"Log start")
            # exc_info设置为true,则将堆栈中的信息输入到log上,便于调试
            log.error('readcsv break down', exc_info=True)
    

    四 ,效果

    2021-09-09 19:59:21,783 - ReadInputFile.py[line:92] - INFO: Log start
    2021-09-09 19:59:21,783 - ReadInputFile.py[line:94] - ERROR: readcsv break down
    Traceback (most recent call last):
      File "D:/py/excelToDBC/CAPLgen_src/lib/ReadInputFile.py", line 62, in <module>
        readcsv()
      File "D:/py/excelToDBC/CAPLgen_src/lib/ReadInputFile.py", line 38, in readcsv
        with open(os.path.abspath(os.path.dirname(os.getcwd())) + "\\input\\" + FileName, 'r') as fr:
    FileNotFoundError: [Errno 2] No such file or directory: 'D:\\py\\excelToDBC\\CAPLgen_src\\input\\inputCANMatrix.csv'
    

    五,小结

    其实很多技术是相通的,可迁移的,我今天日志系统的学习就是一次验证。最喜欢学习的就是这些可迁移的技能和技术思想了,哈哈~

    相关文章

      网友评论

        本文标题:python使用日志系统--Apple的学习笔记

        本文链接:https://www.haomeiwen.com/subject/tsdwwltx.html