以下是自己写的 记录日志的代码。(和logging不搭嘎,如果如要学loggging模块,本文末尾有他人的链接。)

# prtlog.py
#############################################
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 12 10:46:06 2018需求起源:1. 在spyder中写python脚本时,经常要写print来调试; 开发完执行时(python file.py),也需要运行log来找bug.2. 如果用print, 运行时python file.py >> log  缺点:(1) file.py不结束无法查看log文件 (2)别人模块中的输出,会不断在输出到log.3. 如果用logging模块 缺点:(1) spyder调试时,log文件一直处于打开状态 (2)在spyder中调试时不好用,logging好像主要为了记录运行时的日志。功能:1. 开发时输出print结果,运行时输出同目录下1.log文件2. 保留最新log中前num行3. 每次使用prtlog输出都会打开并关闭1.log文件缺点:效率不高(不追求效率就无所谓了)
"""import os,sys
import time,datetimedef checklog(logfile,num=1000):#保留文件中至少num行try:if os.path.exists(logfile):lines = open(logfile,'r').readlines()if len(lines)>num+num*0.5: #当文件大于num+500时,只保留最近num行,避免删除重写文件频率太高。
                os.remove(logfile)with open(logfile,'w') as f:for line in lines[-num:]:f.write(line)else:passexcept:print('Wrong! : [fun]checklog.')def prtlog(logstr='123',linenum='',maxlines=1000):#linenum 指运行时所在行号logstr= str(logstr);    dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))logfile = os.path.join(dirname,'1.log')checklog(logfile,maxlines)with open(logfile,'a+') as f:lineheader='%s %s[%s]: '%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),filename,linenum)f.write(lineheader+logstr+'\n')print(lineheader+logstr)f.close()if __name__ == '__main__':prtlog(logstr='123')# b.py
#############################################from prtlog import prtlog
prtlog('haha',maxlines=10)

同目录下生成1.log

运行prtlog.py3次,运行b.py3次. 1.log内容:

如需了解logging:

(转)python logging模块 ★★,

python中logging模块的一些简单用法 ★★★★★★★,

python模块之logging ★★★★

Python之日志处理(logging模块)★★★★

转载于:https://www.cnblogs.com/andylhc/p/10118603.html

python 运行日志logging代替方案相关推荐

  1. python之 logging模块详细使用【转载】

    很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...

  2. python stdout_详解使用python的logging模块在stdout输出的两种方法

    详解使用python的logging模块在stdout输出 前言: 使用python的logging模块时,除了想将日志记录在文件中外,还希望在前台执行python脚本时,可以将日志直接输出到标准输出 ...

  3. Python中logging.config配置文件解读

    Python中logging.config配置文件解读 下面的函数用于配置logging模块,它们位于logging.config模块中.你可以使用这些函数来配置,也可以在logging或是loggi ...

  4. python使用logging捕获异常后继续执行函数

    使用python的logging模块可以在捕获异常后,记录异常且不退出程序: 例子: import logginglogging.basicConfig(filename='new.log', # 打 ...

  5. django/python日志logging 的配置以及处理

    日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么地方,有什么异常.在生产环境下有很大的用处.在java 开发中通常用 log4j,logback 等三方组件.那么在 django中是怎么处 ...

  6. Python 日志logging模块初探及多线程踩坑(2)

    系列文章: Python 日志logging模块初探及多线程踩坑(1) Python 日志logging模块初探及多线程踩坑(2) 接着上面一篇文章,我们这篇来写一个多进程兼容且无损性能的 Timed ...

  7. python使用logging打印信息到日志文件中

    python使用logging打印信息到日志文件中 参考 Python输出日志信息 Python + logging 输出到屏幕,将log日志写入文件 使用logging打印日志到文件中的目的是: 解 ...

  8. FreeCAD C/C++/Python混合开发/调试方案

    FreeCAD C/C++/Python混合开发/调试方案 济南友泉软件有限公司 本文主要讲述在Visaul Studio 2019中混合调试FreeCAD C/C++/Python代码的环境配置方法 ...

  9. python 之logging 模块

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

最新文章

  1. 并发控制:(三)MVCC 多版本并发控制
  2. csrf 攻击和防御
  3. UA OPTI570 量子力学17 创生算符与湮灭算符
  4. sqlite工具类 java_Java之泛型、集合工具类
  5. 基于jsp+mysql+Spring的SpringBoot招聘网站项目(完整源码+sql)主要实现了管理员登录,简历管理,问答管理,职位管理,用户管理,职位申请进度更新,查看简历
  6. 职称计算机考试word2003真题,职称计算机考试《Word2003》历年真题回顾(1)
  7. 由浅入深CIL系列:4.抛砖引玉:使用CIL来分析string类型在.NET运算中的性能和避免装箱...
  8. android之module删除不干净
  9. Spring学习-Bean的理解
  10. 罗振宇跨年演讲全文、PPT、图解
  11. Python代码对接抖音去水印提取API接口、TikTok去水印解析接口的源码
  12. 键盘拆开重新安装步骤_笔记本键盘怎么拆——键盘分拆详细步骤
  13. 【数据分析】数据分析方法(一):5W2H 分析方法
  14. 在命令行下转换磁盘分区格式为GPT或MBR(会丢失所有数据)
  15. q_i7p_co/index_php rmvb_某返利网站admin目录index.php文件混淆加密算法分析
  16. 对应于正态分布的拉丁超立方抽样——Python版
  17. 星宸科技IC2020笔试
  18. 小白易语言post培训接码登录day03
  19. smcsuperio黑苹果_基于OpenCore0.6.1的黑苹果安装,小白也能看
  20. Win10打不开OneDrive

热门文章

  1. 【ORACLE 高可用】 高级复制的两个配置实例 - 使用高级复制和物化视图
  2. GitHub控件之BadgeView(数字提醒)
  3. Android 如何在App中启动系统闹钟
  4. Android 高级Drawable资源---复合Drawable----变换Drawable---RotateDrawable用法实例
  5. Java---类加载
  6. 张志华教授《机器学习导论》和《统计机器学习》课程讲义
  7. Eclipse调试Logcat类的说明
  8. Flutter入门:Hero共享元素
  9. 前端读者 | 由setTimeout引发的JS引擎运行机制的研究
  10. poj2976 Dropping tests(01分数规划 好题)