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)

三、向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)

第二种实现:

#!/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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值