码迷,mamicode.com
首页 > 编程语言 > 详细

人生苦短_我用Python_logging日志操作_011

时间:2018-06-26 11:09:21      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:for   encoding   email   详细   add   自定义   文件   warning   tle   

话不多说,开搞,基础是先使用自带loggin模块,level为warning以上,

进一步是自定义logger,level可自定义

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/6/25 21:09
# @Author  : Mr.chen
# @Site    : 
# @File    : class_06_23_log_001.py
# @Software: PyCharm
# @Email   : 794281961@qq.com

import logging, os

# 日志分为几个级别?     5个
# debug(调试信息)   info(详细信息)  warning(警告信息)   error(错误信息)     critical(致命的严重的错误)

# :1   日志收集器    logger  --->日志收集器(默认只收集warning级别以上的信息)
# :2   输出渠道    console file
# :3   创建自己的日志收集器,Logger,专门收集debug与info信息
‘‘‘
logging.debug(‘loging_model_debug信息‘)
logging.info(‘loging_model_info信息‘)
logging.warning(‘loging_model_warning信息‘)
logging.error(‘loging_model_error信息‘)
logging.critical(‘loging_model_critical信息‘)
# ps:因为Logging默认输出的level为warning以上的信息才能输出,所以这样的需求是不满足我们的,So,我们要自定义log
‘‘‘


class MyLog:
    # log流程:先收集日志--->后输出渠道
    # 第一:规范日志格式
    def my_log(self, name, level, log_path=(os.path.dirname(__file__)) + (\\test_log.txt)):
        formatter = logging.Formatter(【%(asctime)s】-【%(levelname)s】-【%(filename)s-%(name)s】-【日志信息】:%(message)s)
        # 第二:创建自己的日志收集器,Logger,专门收集debug与info信息
        #     name, level=NOTSET,如果level不设置的话,默认为warning级别,命名的时候要大写
        logger = logging.Logger(name, level)
        # logger.debug(‘这是个调试信息......‘)
        # logger.info(‘这是个详细信息‘)
        # logger.warning(‘这是个警告信息......‘)
        # logger.error(‘这是个错误信息...........‘)
        # logger.critical(‘这是个致命且严重的错误......‘)

        # # 第三:创建输出渠道,warning级别以上的信息,输出到控制台
        ch = logging.StreamHandler()  # 输出到控制台
        ch.setLevel(level)
        logger.addHandler(ch)
        ch.setFormatter(formatter)

        # 第三:也可以,Logger,输入到文件中
        fh = logging.FileHandler(log_path, encoding=UTF-8)  # 输出到文件里
        fh.setLevel(level)
        fh.setFormatter(formatter)
        logger.addHandler(fh)
        logger.addHandler(ch)
        ch.setFormatter(formatter)
        return logger


if __name__ == __main__:
    logger = MyLog().my_log(mr.chen, DEBUG)
    logger.debug(这是个调试信息......)
    logger.info(这是个详细信息)
    logger.warning(这是个警告信息......)
    logger.error(这是个错误信息...........)
    logger.critical(这是个致命且严重的错误......)

 

人生苦短_我用Python_logging日志操作_011

标签:for   encoding   email   详细   add   自定义   文件   warning   tle   

原文地址:https://www.cnblogs.com/mrchenyushen/p/9227231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!