当前位置:   article > 正文

Python日志记录

python日志记录

一、使用模块如下

1、logging:日志记录工具
2、logging.config:日志记录配置
3、logging.handlers:日志处理程序

二、向文件(终端)添加日志示例

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import logging
import logging.handlers as loghandlers
import logging.config as logconfig

def loginit(logname,logpath):
    logger = logging.getLogger(logname)
    logger.setLevel(logging.DEBUG)
    # 创建处理器
    # loghandler = logging.StreamHandler()    # 日志信息输出到终端
    # loghandler = logging.FileHandler(logpath) # 日志信息输出到文件
    # loghandler = loghandlers.RotatingFileHandler(logpath,maxBytes=1024*1,backupCount=5) # 根据文件大小轮换日志文件
    loghandler = loghandlers.TimedRotatingFileHandler(logpath,when='M',interval=1,backupCount=5) # 根据时间轮换日志文件
    loghandler.setLevel(logging.DEBUG)
    # 创建格式器(打印日志的时间-打印日志级别的名称-打印当前执行程序名-打印日志的当前函数-打印日志的当前行号: 日志信息)
    logformatter = logging.Formatter('%(asctime)s-%(levelname)s-%(filename)s-%(funcName)s-%(lineno)d: %(message)s')
    # 将格式器添加到处理器中
    loghandler.setFormatter(logformatter)
    # 将处理器添加到记录器中
    logger.addHandler(loghandler)
    return logger

def main(logger):
    logger.info('123')
    return

def test(logger):
    logger.warning('456')
    return


if __name__ == '__main__':
    logger = loginit('simple_example','log.log')
    main(logger)
    test(logger)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

三、向rsyslog添加日志

第一种实现:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

import logging
from logging.handlers import SysLogHandler

def loginit(logname):
    logger = logging.getLogger(logname)
    logger.setLevel(logging.DEBUG)
    # 创建处理器
    loghandler = SysLogHandler(facility=SysLogHandler.LOG_USER, address='/dev/log')
    loghandler.setLevel(logging.DEBUG)
    # 创建格式器(打印日志的时间-打印日志级别的名称-打印当前执行程序名-打印日志的当前函数-打印日志的当前行号: 日志信息)
    logformatter = logging.Formatter('%(filename)s[%(process)d] %(levelname)s: %(message)s')
    # 将格式器添加到处理器中
    loghandler.setFormatter(logformatter)
    # 将处理器添加到记录器中
    logger.addHandler(loghandler)
    return logger

def main(logger):
    logger.info('123')
    return

def test(logger):
    logger.warning('456')
    return


if __name__ == '__main__':
    logger = loginit('simple_example')
    main(logger)
    test(logger)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

第二种实现:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

import logging
from logging.handlers import SysLogHandler

def loginit(logname):
    logger = logging.getLogger(logname)
    logger.setLevel(logging.DEBUG)
    # 创建处理器
    loghandler = SysLogHandler(address=("127.0.0.1", 514))
    loghandler.setLevel(logging.DEBUG)
    # 创建格式器(打印日志的时间-打印日志级别的名称-打印当前执行程序名-打印日志的当前函数-打印日志的当前行号: 日志信息)
    logformatter = logging.Formatter('%(filename)s[%(process)d] %(levelname)s: %(message)s')
    # 将格式器添加到处理器中
    loghandler.setFormatter(logformatter)
    # 将处理器添加到记录器中
    logger.addHandler(loghandler)
    return logger

def main(logger):
    logger.info('123')
    return

def test(logger):
    logger.warning('456')
    return


if __name__ == '__main__':
    logger = loginit('simple_example')
    main(logger)
    test(logger)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

四、特别说明

详细信息参考官方手册

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/512703
推荐阅读
相关标签
  

闽ICP备14008679号