python logging日志模块-自定义log

系统 1993 0

自定义log 

python logging日志模块-自定义log_第1张图片

            
              #coding=utf-8

import datetime
class Logs:
    debug = 1
    def logwr(self,logdd):
        tms = datetime.datetime.now().strftime("%Y-%m-%d")
        name='wenshu_{0}.log'.format(tms)
        tm = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
        line = "{0} : {1}".format(tm, logdd)
        print(line)
        with open(name,'a') as loged:
            loged.write(line+"\n")
            loged.close()
    def log_debug(self,logdd):
        logdd='debug:{0}'.format(logdd)
        if self.debug==1:
            self.logwr(logdd)

if __name__ == '__main__':
    logs=Logs()
    logs.logwr('test')
    logs.log_debug('debuglog')



            
          

 

            
              #!/usr/bin/env python
#_*_coding:utf-8_*_
import logging

logging.basicConfig(                                                         #通过具体的参数来更改logging模块默认行为;
    level=logging.ERROR,                                                     #设置告警级别为ERROR;
    format="%(asctime)s---%(lineno)s----%(name)s: %(message)s",     #自定义打印的格式;
    filename="yinzhengjie.txt",                                                    #将日志输出到指定的文件中;
    filemode="a",                                                           #以追加的方式将日志写入文件中,w是以覆盖写的方式哟;
)
"""
format参数中可能用到的格式化串:
    1>.%(name)s
         Logger的名字
    2>.%(levelno)s
        数字形式的日志级别
    3>.%(levelname)s
        文本形式的日志级别
    4>.%(pathname)s
        调用日志输出函数的模块的完整路径名,可能没有
    5>.%(filename)s
        调用日志输出函数的模块的文件名
    6>.%(module)s
        调用日志输出函数的模块名
    7>.%(funcName)s
        调用日志输出函数的函数名
    8>.%(lineno)d
        调用日志输出函数的语句所在的代码行
    9>.%(created)f
        当前时间,用UNIX标准的表示时间的浮 点数表示
    10>.%(relativeCreated)d
        输出日志信息时的,自Logger创建以 来的毫秒数
    11>.%(asctime)s
        字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
    12>.%(thread)d
        线程ID。可能没有
    13>.%(threadName)s
        线程名。可能没有
    14>.%(process)d
        进程ID。可能没有
    15>.%(message)s
        用户输出的消息
"""


logging.debug("debug message")              #告警级别最低,只有在诊断问题时才有兴趣的详细信息。

logging.info("info message")                #告警级别比debug要高,确认事情按预期进行。

logging.warning("warning message")          #告警级别比info要高,该模式是默认的告警级别!预示着一些意想不到的事情发生,或在不久的将来出现一些问题(例如“磁盘空间低”)。该软件仍在正常工作。

logging.error("error message")              #告警级别要比warning药膏,由于一个更严重的问题,该软件还不能执行某些功能。

logging.critical("critical message")        #告警级别要比error还要高,严重错误,表明程序本身可能无法继续运行。
            
          
            
              #!/usr/bin/env python
#_*_coding:utf-8_*_

import logging

from logging import handlers

logger = logging.getLogger(__name__)

log_file = "timelog.log"

#fh = handlers.RotatingFileHandler(filename=log_file,maxBytes=10,backupCount=3)

fh = handlers.TimedRotatingFileHandler(filename=log_file,when="S",interval=5,backupCount=3) #filename定义将信息输入到指定的文件,
# when指定单位是s(秒),interval是时间间隔的频率,单位是when所指定的哟(所以,你可以理解频率是5s);backupCount表示备份的文件个数,我这里是指定的3个文件。

formatter = logging.Formatter('%(asctime)s %(module)s:%(lineno)d %(message)s')  #定义输出格式

fh.setFormatter(formatter) #添加格式化输出
logger.addHandler(fh)

logger.warning("test1")
logger.warning("test2")
logger.warning("test3")
logger.warning("test4")
            
          

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论