logging模块简单使用

本文详细介绍了如何在Python中配置日志记录,包括定义日志级别、格式化日志输出及将日志写入文件的方法。同时展示了如何通过具体实例来使用这些配置,以便开发者能够更好地管理和分析应用程序的日志。

日志配置

#!/usr/bin/python2.7

import os
import logging
 
def get_logger(path='./', filename='access.log', level='debug'):
    log_level = {
        'debug':logging.DEBUG,
        'info':logging.INFO,
        'warning':logging.WARNING,
        'error':logging.ERROR,
        'critical':logging.CRITICAL
    }
    level = 'debug' if level not in log_level else level

    file = os.path.join(path,filename)
    formatter = logging.Formatter('"%(asctime)s" "%(filename)s[line:%(lineno)d]" "%(levelname)s" "%(message)s"')
    handler = logging.FileHandler(file, mode='a')
    # handler.setLevel(log_level[level])
    handler.setFormatter(formatter)

    logger = logging.getLogger(__name__)
    logger.setLevel(log_level[level])
    logger.addHandler(handler)

    return logger

注意logger.setLevel 和 handler.setLevel 是不一样的。

给日志每个字段加上双引号,方便后面结合awk进行统计分析

awk -F \" '{print $2}' analysis.log

 

项目里的应用

定义

import logging

logger = logging.getLogger("HorizonLog")  # 指定一个名称
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s :: %(process)s :: %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
handler = logging.FileHandler(settings.LOG_PATH + '/horizon.log')
handler.setFormatter(formatter)
logger.addHandler(handler)

使用

# Return a logger with the specified name or, 
# if no name is specified, return a logger which is the root logger of the hierarchy.

logger = logging.getLogger("HorizonLog")

logger.info(...)
logger.warning(...)
logger.error(...)

 

转载于:https://www.cnblogs.com/standby/p/9305825.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值