发布时间:2017-12-11 21:22:59编辑:Run阅读(4072)
在编写程序中添加一大堆的代码就不是那么愉快的事情,好在python有强大的import,完全可以先配置好一个mylog.py,以后需要使用时直接导入mylog.py模块即可
编写mylog.py,代码如下
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' import logging import getpass import sys #定义类 class MyLog(object): '''这个类用于创建一个自用的log''' def __init__(self): user = getpass.getuser() self.logger = logging.getLogger(user) self.logger.setLevel(logging.DEBUG) logfile = sys.argv[0][0:-3] + '.log' #日志文件名 formatter = logging.Formatter('%(asctime)-12s %(levelname)-8s %(name)-10s %(message)-12s') '''日志显示到屏幕上并输出到日志文件内''' logHand = logging.FileHandler(logfile) logHand.setFormatter(formatter) logHand.setLevel(logging.ERROR) #只有错误才会被记录到logfile中 logHandst = logging.StreamHandler() logHandst.setFormatter(formatter) self.logger.addHandler(logHand) self.logger.addHandler(logHandst) '''日志的5个级别对应以下的5个函数''' def debug(self, msg): self.logger.debug(msg) def info(self, msg): self.logger.info(msg) def warn(self, msg): self.logger.info(msg) def error(self, msg): self.logger.error(msg) def critical(self, msg): self.logger.critical(msg) if __name__ == '__main__': mylog = MyLog() mylog.debug("I'm debug") mylog.info("I'm info") mylog.warn("I'm warn") mylog.error("I'm error") mylog.critical("I'm critical")
运行程序,应该看到的结果
还会在当前目录下,生成一个mylog.log文件,内容如下
下面再写一个testMylog.py,在程序中导入上面的mylog.py作为模块使用
编写testMylog.py,代码如下
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' #导入之前的模块 from mylog import MyLog if __name__ == '__main__': ml = MyLog() ml.debug("I am debug message") ml.info("I am info message") ml.warn("I am warn message") ml.error("I am error message") ml.critical("I am critical message")
运行结果如下
还会在当前目录下生成一个testMylog.log
在编程时,有时为了查看程序的进度和参数变化,在程序中间插入了大量的print.检查完毕后又要诼个删除,费时费力,使用log后就简单多了,直接保存为日志文件即可
上一篇: python标准库--logging模块
下一篇: python-其它有用模块1
47606
45987
36909
34470
29082
25713
24566
19715
19248
17756
5566°
6155°
5691°
5737°
6706°
5483°
5484°
5989°
5965°
7295°