首页 > 其他分享 >logging模块

logging模块

时间:2023-03-23 15:59:37浏览次数:40  
标签:输出 logging 模块 setLevel handler file 日志

# coding=utf-8

import logging
from logging import handlers
import time

def mylogger():
    #创建一个记录器,命名为test
    logger = logging.getLogger('test')
    #告诉它要记录哪些级别的日志(具体等级在下面#1)(与下面setLevel的区别)
    logger.setLevel(level=logging.DEBUG)
    
    #输出格式(参数在下面#2)
    formatter = logging.Formatter('%(asctime)s - %(filename)s - %(lineno)d - %(name)s - %(levelname)s: %(message)s')
    
    #handler是设置输出到哪里去
    #StreamHandler是输出到控制台,里面的setLevel是设置给handler设是告诉它要输出哪些级别的日志(与上面setLevel的区别),
    stream_handler = logging.StreamHandler()
    stream_handler.setLevel(logging.DEBUG)
    stream_handler.setFormatter(formatter)
    logger.addHandler(stream_handler)
    
    #FileHandler是输出到文件'test2.log'
    file_handler = logging.FileHandler('test2.log')
    file_handler.setLevel(logging.DEBUG)
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)
    
    #TimedRotatingFileHandler是按照时间自动分割日志文件,具体规则在下面#3
    time_rotating_file_handler = handlers.TimedRotatingFileHandler(filename='rotating_test.log', when='S', backupCount=3)
    time_rotating_file_handler.setLevel(logging.DEBUG)
    time_rotating_file_handler.setFormatter(formatter)
    logger.addHandler(time_rotating_file_handler)

    return logger

if __name__ == '__main__':
    mylogger = mylogger()
    for i in range(10):
        i = i * 2
        time.sleep(3)
        mylogger.debug('result is %s' % i)


#1   日志级别
#  DEBUG	   详细信息,一般只在调试问题时使用。
#  INFO	       证明事情按预期工作。
#  WARNING     某些没有预料到的事件的提示,或者在将来可能会出现的问题提示。例如:磁盘空间不足。但是软件还是会照常运行。
#  ERROR       由于更严重的问题,软件已不能执行一些功能了。
#  CRITICAL	   严重错误,表明软件已不能继续运行了。
#
#
#2   formatter参数
#  %(name)s     Logger的名字
#  %(levelno)s   数字形式的日志级别
#  %(levelname)s   文本形式的日志级别
#  %(pathname)s   调用日志输出函数的模块的完整路径名,可能没有
#  %(filename)s   调用日志输出函数的模块的文件名
#  %(module)s   调用日志输出函数的模块名
#  %(funcName)s  调用日志输出函数的函数名
#  %(lineno)d   调用日志输出函数的语句所在的代码行
#  %(created)f  当前时间,用UNIX标准的表示时间的浮 点数表示
#  %(relativeCreated)d   输出日志信息时的,自Logger创建以 来的毫秒数
#  %(asctime)s   字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
#  %(thread)d   线程ID。可能没有
#  %(threadName)s   线程名。可能没有
#  %(process)d   进程ID。可能没有
#  %(message)s  用户输出的消息
#  
#  
#3   按照时间自动分割日志文件 
#  time_rotating_file_handler = logging.handlers.TimedRotatingFileHandler(filename="loaddata.log", when="D", interval=1, backupCount=30)
#  interval是时间间隔,backupCount用于指定保留的备份文件的个数(其中没有后缀的为最新日志文件)
#  when参数是一个字符串。表示时间间隔的单位,不区分大小写。它有以下取值:
#    S 秒
#    M 分
#    H 小时
#    D 天
#    W 每星期(interval==0时代表星期一)
#    midnight 每天凌晨
#  
#4    logging.handlers.RotatingFileHandler为按照大小自动分割日志文件
#  




python + logging 实现日志输出及保存到文件

Python + logging 输出到屏幕,将log日志写入文件

标签:输出,logging,模块,setLevel,handler,file,日志
From: https://www.cnblogs.com/yy9knsg/p/17247721.html

相关文章

  • from selenium.webdriver import DesiredCapabilities:DesiredCapabilities.CHROME["l
    https://blog.csdn.net/JZF2050/article/details/127965179 DesiredCapabilities.CHROME["loggingPrefs"]={'browser':'ALL'} fromselenium.webdriverimportDe......
  • Linux 中间件 | Perl 及 Perl 模块安装
    Perl作为脚本语言,应用范围也比较广泛。本文环境,AmazonLinuxrelease2,全程用root用户。Perl安装一、通常系统会自带,先确认一下rpm-qa|grepperl二、没有自带,......
  • gzip模块详解
    包方法:GzipFileopengzip_file=gzip.open('B5-H.pickle.gz')>>>type(tar_file)<class'gzip.GzipFile'>tar_file1=gzip.GzipFile('testtar.tar')>>>type(ta......
  • 语音识别模块
      https://item.taobao.com/item.htm?spm=a1z09.2.0.0.7ea92e8dSnWrPM&id=664937015643&_u=m1qf7bf5ed2f      LU-ASR01常见问题:1.可以自定义唤醒词吗? ......
  • 修改U8启用模块日期以下以库存为例
    注意:以下方法仅适用于你所调整区间没有对应的表单业务发生,如确实要调整,需要删除调整区间内的业务表单,以下场景仅适用于初始化工作未完成需要重新初始化及业务单据不多情况:......
  • “一网统管”视频汇聚平台EasyCVR视频调阅模块新增“点击加载上次记录”功能
    EasyCVR视频融合平台基于云边端一体化架构,部署轻快、功能灵活,平台可支持多协议、多类型设备接入,在视频能力上,可实现视频直播、录像、回放、检索、云存储、告警上报、语音对......
  • scipy模块
    scipy模块scipy依赖于numpy,提供了便捷快速的n维数组操作。scipy子包scipy.cluster:矢量量化/Kmeansscipy.constants:物理和数学常数scipy.fftpack:傅里叶变换scipy......
  • MPI转以太网模块连接300PLC与DCS modbus通信
    MPI转以太网模块连接300PLC与DCSmodbus通信由300PLC通过MPI转以太网Plus模块作为modbus从站与DCS主站通信实现MPI转RTU与DCS通信打开兴达易控提供的MPI转以太网模块配置文......
  • mpi转以太网Plus模块连接300PLC实现MPI转modbus通信
    西门子200/300PLC转以太网同时实现PPI/MPI/DP转modbus通信产品简介MPI-ETH-XD1.0plus是在MPI-ETH-XD1.0的基础上,以太网口增加了支持与西门子带网口PLC(S7-200SMART、S7-120......
  • MPI转以太网Plus模块Modbus连接两台变频器通信案例
    MPI转以太网Plus模块Modbus主站连接两台变频器通信案例MPI转以太网Plus模块连接200PLC无需编程实现Modbus主从站功能与2台变频器modbus通信;以下就是MPI转以太网模块作为mod......