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")

原文地址:https://www.cnblogs.com/bluezms/p/8955427.html

时间: 2024-08-30 00:05:18

python使用logging模块实现日志写入的相关文章

Python基础-----logging模块

#!/usr/bin/env python#-*- coding:utf-8 -*- ########################################################################################################################################################灵活配置日志级别,日志格式,输出位置#####################################

Python中logging模块的基本用法

在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 怎样进行日志记录相关配置 日志记录使用常见误区 下面我们来梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置. 日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,

logging 模块和日志

目录 logging 模块和日志 基础版日志 进阶版日志 类封装版日志 logging 模块和日志 logging 也就是日志模块,其主要作用于有: 记录程序运行的状态(时间,文件名,报错行数,错误信息): 用户的喜好(分析用户的一些喜好和操作): 银行(账户流水). 日志一共分为五个级别: 序号 错误名 含义 级别 1 debug 调试 10 2 info 信息 20 3 warning 警告 30 4 error 错误 40 5 critical 危险 50 一般情况下,日志默认报告级别在

python的logging模块

1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message') 屏幕上打印: WARNING:root:Thisis warning message 默认情况下,logging将日志打印到屏幕,日志级别为WARNING: 日志级别大小关系为:CRITICAL > ER

python的logging模块详解

日志级别 >>>import logging >>>logging.NOTSET 0 >>>logging.DEBUG 10 >>>logging.INFO 20 >>>logging.WARN 30 >>>logging.ERROR 40 >>>logging.CRITICAL 50 >>>logging._levelNames {0:'NOTSET', 10:

python之logging模块的使用

python的logging模块是用来写日志的,是python的标准模块. logging的结构 查看logging的python源码,可知主要有四个类实现功能: Loggers:提供应用程序直接使用的接口,如相关的配置设置: Handlers:将Loggers产生的日志传到指定位置,设置日志保存的位置: Filters:对输出日志进行过滤操作: Formatters:控制日志的输出格式: 日志记录的级别 DEBUG:优先级10,记录调试的详细信息,只在调试时开启: INFO:优先级20,记录普

python使用logging模块方法 教程

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息:print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据:logging则可以由开发者决定将信息输出到什么地方,以及怎么输出: logging模块的日志级别 logging模块默认定义了以下几个日志等级,它允许开发人员自定义其他日

logging模块及日志框架

logging模块及日志框架 logging模块 一.导入方式 import logging 二.作用 写日志 三.模块功能 3.1 经常使用 # V1 import logging logging .debug(('调试')) #10 logging.info('正常') #20 logging.critical('严重错误') #30 logging.error('错误') #40 logging.warning('警告') #50 #默认级别为30以上的可以打印 # V2 import l

python之logging模块使用

#!/usr/bin/env python # encoding: utf-8 import logging #定义handler的输出格式 formatter=logging.Formatter('%(asctime)s--%(name)s--%(filename)s--%(message)s') #创建一个handler,用于写入日志文件,只输出debug级别以上的日志 fh=logging.FileHandler('test.log') fh.setFormatter(formatter)