近来再弄一个小项目,已经到收尾阶段了。希望加入写log机制来增加程序出错后的判断分析。尝试使用了python logging模块。

#-*- coding:utf-8 -*-

importloggingimportsysclassLogRecord(object):def __init__(self):

self.mylogger= logging.getLogger('iplog')

self.mylogger.setLevel(logging.WARNING)#创建一个handler,用于写入日志文件

self.fn = logging.FileHandler(sys.path[0]+'/iplog.log','a')#定义handler的输出格式formatter

self.formatter = logging.Formatter('%(asctime)s %(levelname)s %(filename)s[line:%(lineno)d] %(message)s')#定义handler的输出格式

self.fn.setFormatter(self.formatter)#给mylogger添加handler

self.mylogger.addHandler(self.fn)defGetLogObj(self):return self.mylogger

logging模块使用起来也比较简单。

logging.getLogger([name]):

返回一个logger对象,如果没有指定名字将返回root logger。

self.mylogger.setLevel(level):

指定最低的日志级别,可用的日志级别有logging.DEBUG

只有日志等级大于或等于设置的日志级别的日志才会被输出。

logging.FileHandle(path):

创建一个handler,用于写入日志文件.也可以创建一个StreamHandle控制台输出。还有很多Handle就大家自行进行扩展了。

logging.Formatter(*args):

定义handler的输出格式formatter。输出格式有很多。

format参数中可能用到的格式化串:

%(name)s Logger的名字

%(levelno)s 数字形式的日志级别

%(levelname)s 文本形式的日志级别

%(filename)s 调用日志输出函数的模块的文件名

%(module)s 调用日志输出函数的模块名

%(funcName)s 调用日志输出函数的函数名

%(lineno)d 调用日志输出函数的语句所在的代码行

%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示

%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数

%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒

%(message)s用户输出的消息

self.fn.setFormatter(self.formatter):

将输出格式绑定到handle上。

self.mylogger.addHandler(self.fn):

将handle绑定到mylogger对象上。

接下来就直接调用mylogger.error or debug or warning or info.....,直接输出到指定的log文件中了。但是要记得当前的self.mylogger.setLevel(logging.WARNING)是什么?只要大于或者等于WARING的日志等级才会被写入log文件中。

if status_first == -1:

self.mylogger.error("new_ipurl = %s,first download is failed!fail url save." %new_ipurl) self.failurllst.append(new_ipurl)else:

self.mylogger.debug("new_ipurl = %s,download is success!" % new_ipurl)

python logging模块使用_python logging模块使用相关推荐

  1. python logging模块 默认_python logging模块

    函数式简单配置 importlogging logging.debug('debug message') #计算或者工作的细节 logging.info('info message') #记录一些用户 ...

  2. python logging 控制其他模块等级_Python常用模块:logging模块介绍

    简单使用 #!/usr/local/bin/python# -*- coding:utf-8 -*-import logginglogging.debug('debug message')loggin ...

  3. python logging日志分割_python logging日志模块以及多进程日志

    本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...

  4. python中的模块原则_python 的模块与包

    一 模块 1.什么是模块 ​ 模块是一系列功能的结合体 ​分为三大类: ​1.内置的模块 ​2.第三方的模块 ​3.自定义的模块 ​一个 python 文件本身就是一个模块,文件名:m.py 模块名: ...

  5. python如何创建模块教程_Python创建模块及模块导入的方法

    本文实例讲述了Python创建模块及模块导入的方法.分享给大家供大家参考.具体分析如下: python学习手册中写道: 定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为 ...

  6. python常用模块用法_python常用模块(一)

    #什么是模块呢?就是用一大坨代码来完成一个功能的代码集合,是不是简单易懂 #类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个 ...

  7. python变量和常量_Python数学模块常量和示例

    python变量和常量 Python数学模块常量 (Python math module constants) In the math module, there are some of the de ...

  8. python引入模块教程_python导入模块--案例

    1 导入模块 1.1 问题 本案例要求先编写一个star模块,主要要求如下: 建立工作目录 ~/bin/ 创建模块文件 ~/bin/star.py 模块中创建pstar函数,实现打印50个星号的功能 ...

  9. python 逐行读取文件_Python fileinput模块:逐行读取多个文件

    前面章节中,我们学会了使用 open() 和 read()(或者 readline().readlines() )组合,来读取单个文件中的数据.但在某些场景中,可能需要读取多个文件的数据,这种情况下, ...

  10. python模块总结_Python常用模块资料总结和归纳

    Python模块是什么? 一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性.模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中.简单的说 ...

最新文章

  1. python创建一个txt文件-python新建txt文件,并逐行写入数据
  2. 错误:Script file ‘D:\software_install\Anaconda_install\Scripts\pip-script.py‘ is not present.完美解决方法
  3. Python四道面试题
  4. php显示无法找到该网页,window_Win8系统IE浏览器提示无法找到该网页的解决方法,  我们在浏览网页的时候, - phpStudy...
  5. 统计iOS项目代码行数
  6. MyCat分布式数据库集群架构工作笔记0002---数据库中间件对比
  7. 织梦新建顶级栏目打不开,解决办法
  8. 如何使用Intellij IDEA工具导入SVN项目
  9. dorado 7 使用总结
  10. 通用删除查询语句存储过程
  11. open-falcon配置报警
  12. 贪心算法题目 推销员
  13. 墨子科技成果是计算机,近年来取得了哪些科技成就_现代史_我爱历史网
  14. 【iOS开发】生成Appicon图标、为iOS应用添加图标
  15. 彼时彼刻恰似此时此刻
  16. 【总结】初创公司用AWS搭建高扩展性架构
  17. excel服务器项目管理软件,用excel做项目管理系统
  18. 网易招财猫(内测版)
  19. 201808月份校招提前批面试总结
  20. 排名前100的Android开源库

热门文章

  1. 先给自己定个小目标,比如写个爬虫程序
  2. JAVA经典算法50题(转)
  3. 【原】为DevExpress的ChartControl添加Y轴控制 和 GridControl中指定列添加超级链接
  4. Ecshop与Jquery冲突的完美解决方案(实践过,有效)
  5. 重拾CCNA,学习笔记持续更新ing......(4)
  6. 揭秘:美国国防部用什么样的操作系统
  7. php时间戳与日期互转
  8. ftp安装遇到的问题
  9. eclipse安装ADT插件重启后不显示Android SDK Manager和Android Virtual Device Manager图标的一种解决办法
  10. python3 实现 php serialize 函数