python使用logging模块实现日志写入

Posted bluezms

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用logging模块实现日志写入相关的知识,希望对你有一定的参考价值。

python实现的logging写入日志的功能。logging模块还是挺好用的

 

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 
 4 # @Time    : 2018/4/25 17:05
 5 # @Author  : zms
 6 # @Site    : 
 7 # @File    : Log.py
 8 # @Software: PyCharm Community Edition
 9 
10 import time
11 import logging
12 import os
13 from logging.handlers import RotatingFileHandler
14 
15 project_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16 log_path = project_dir + r"\log\\"
17 
18 
19 class Log(logging.Logger):
20     def __init__(self, logname):
21         # super(MyLogger, self).__init__(filename)
22         filename = log_path + logname + .log
23         logging.Logger.__init__(self, filename)
24 
25         # 设置日志格式
26         fmtHandler = logging.Formatter(%(asctime)s [%(filename)s:%(lineno)s][%(levelname)s] %(message)s)
27 
28         # 终端log输出流设置
29         try:
30             consoleHd = logging.StreamHandler()
31             consoleHd.setLevel(logging.ERROR)
32             consoleHd.setFormatter(fmtHandler)
33             self.addHandler(consoleHd)
34         except Exception as reason:
35             self.error("%s" % reason)
36 
37             # 设置log文件
38         try:
39             os.makedirs(os.path.dirname(filename))
40         except Exception as reason:
41             pass
42         try:
43             # 设置回滚日志,每个日志最大10M,最多备份5个日志
44             fileHd = logging.handlers.RotatingFileHandler(
45                 filename, maxBytes=10 * 1024 * 1024, backupCount=5)
46             # fileHd = logging.FileHandler(filename)
47             fileHd.setLevel(logging.INFO)
48             fileHd.setFormatter(fmtHandler)
49             self.addHandler(fileHd)
50         except Exception as reason:
51             self.error("%s" % reason)
52 
53         return
54 
55 
56 
57 if __name__ == __main__:
58     test1 = Log(test1)
59     test2 = Log(test2)
60     while True:
61         test1.error("test1")
62         test2.error("test2")

 

以上是关于python使用logging模块实现日志写入的主要内容,如果未能解决你的问题,请参考以下文章

Python——logging模块(日志模块)

如何使用日志记录Python模块写入文件?

Python日志模块logging使用详解

如何使用日志记录 Python 模块写入文件?

python标准日志模块logging使用

Python--logging日志模块