文档章节

自定义日志类

o
 osc_fmg49rzg
发布于 2019/03/20 12:08
字数 498
阅读 0
收藏 0
def

精选30+云产品,助力企业轻松上云!>>>

#脚本

#py文件
import logging
from configparser import ConfigParser
import os,time
class Homework():
    def __init__(self,file_path= "Section.cfg",section = "config_homework",Level_option = "level",Format_option = "FORMAT",encoding = "UTF-8"):
        """
        默认初始化读取配置文件
        :param file_path:
        :param encoding:
        """
        self.cf = ConfigParser()
        self.cf.read(file_path,encoding)
        self.Level = self.cf.get(section, Level_option)
        self.fm = logging.Formatter(self.cf.get(section,Format_option))
    def log_homework(self,logger = "My_Logs"):
        """
        log文件创建及读取
        :return:
        """
        #创建日志文件并设定收集信息级别
        my_logger = logging.getLogger(logger)
        my_logger.setLevel(self.Level)
        #编辑日志格式并设定输出信息级别
        ch = logging.StreamHandler()
        ch.setLevel(self.Level)
        ch.setFormatter(self.fm)
        #指定输出到文本渠道
        fh = logging.FileHandler(logger,encoding="UTF-8")
        fh.setLevel(self.Level)
        fh.setFormatter(self.fm)
        #渠道
        my_logger.addHandler(ch)
        my_logger.addHandler(fh)
        #收集日志
        my_logger.debug('this is a debug level message')
        my_logger.info('this is info level message')
        my_logger.warning('this is warning level message')
        my_logger.error('this is error level message')
        my_logger.critical('this is critical level message')

if __name__ == '__main__':
    hw = Homework()
    hw.log_homework()
#配置文本(cfg文件)
[config_homework]
level=DEBUG
FORMAT = '%%(asctime)s : %%(levelname)s : %%(message)s'

输出结果:

2019-03-20 11:44:38,134 : DEBUG : this is a debug level message
2019-03-20 11:44:38,134 : INFO : this is info level message
2019-03-20 11:44:38,135 : WARNING : this is warning level message
2019-03-20 11:44:38,135 : ERROR : this is error level message
2019-03-20 11:44:38,135 : CRITICAL : this is critical level message
2019-03-20 11:48:03,167 : DEBUG : this is a debug level message
2019-03-20 11:48:03,168 : INFO : this is info level message
2019-03-20 11:48:03,168 : WARNING : this is warning level message
2019-03-20 11:48:03,168 : ERROR : this is error level message
2019-03-20 11:48:03,168 : CRITICAL : this is critical level message

这是一个初级的自定义日志类,只不过和配置文件关联起来了,初始化读取配置文件,然后基础的输出log日志及打印

注意点:

    1.决定好需要初始化的参数,像这个文件,因为要读取配置文件中的参数来定义信息等级和输出格式,所以最好初始化读取的方法

    2.因为log的输出格式涉及到%所以转义字符时必须的

    3.尽量模块化方法,提高代码的可重复利用性,只不过常用默认参数而不是main方法传参是我个人习惯

上一篇: GAN网络
下一篇: easyui实现分页
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
MVC过滤器:自定义异常过滤器使用案例

在上一篇文章中讲解了自定义异常过滤器,这篇文章会结合工作中的真实案例讲解一下如何使用自定义异常过滤器。 一、需求 本案例要实现的功能需求:在发生异常时记录日志,日志内容包括发生异常...

osc_y4l0tx8t
2019/05/13
2
0
Feign输出Info级别日志

背景   spring cloud netfix组件中,feign相关的日志默认是不会输出的,需要自定义配置才能输出,并且Feign只对Debug基本的日志做出响应, 实际业务需要输出Info级别的日志,所以需要做自定...

xiaomin0322
2019/05/23
488
0
log4net配置自定义字段存入数据库

前言 以bs项目中引入log4net为例。log4net存入数据库提供了基本的(时间、线程、等级、message)字段。 但是实际日志场景中可能需要统计IP、用户ID或者其他业务相关的信息记入日志。 需要重写...

刘昌鑫
2018/12/06
110
0
【Java进阶】利用APT优雅的实现统一日志格式

统一日志格式的几种方式 无论是搭建日志平台还是进行大数据分析,统一日志格式都是一个重要的前提条件。假设要统一成下面的日志格式, 日志格式:[{系统}|{模块}]{描述}[param1=value1$param...

English0523
2018/01/12
0
0
SpringBoot | 第二十五章:日志管理之自定义Appender

前言 前面两章节我们介绍了一些日志框架的常见配置及使用实践。一般上,在开发过程中,像、日志框架都提供了很多,基本上可以满足大部分的业务需求了。但在一些特殊需求或者需要将日志进行集...

osc_7dhd4ad7
2018/08/25
18
0

没有更多内容

加载失败,请刷新页面

加载更多

深入浅出Zabbix 3.0 -- 第二章 Zabbix Web操作与定义

第二章 Zabbix Web操作与定义 本章介绍Zabbix 中一些基本概念的定义和web前端页面的操作,包括Zabbix中使用的一些术语的定义,Web页面中用户管理、主机和主机组的管理,以及监控项、模板、触...

osc_5zaxkz1e
31分钟前
14
0
深入浅出Zabbix 3.0 -- 第一章 Zabbix 安装与配置

第一章 Zabbix 安装与配置 1.1 Zabbix 介绍 Zabbix是一个企业级的开源监控软件,可以监控IT基础架构的可用性和应用的性能,为用户提供集中管理、分布式监控的一站式(all in one)监控解决方...

osc_nvkeo9cj
31分钟前
10
0
PHP 实现抽奖逻辑

public static function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 forea......

chenhongjiang
31分钟前
18
0
struts2 上传 下载

东方部落: http://11144439.blog.51cto.com struts中上传文件功能小测试。这里jar是 2.5 版本。 项目结构图 废话不多说,直接代码。 2. web.xml配置 <?xml version="1.0" encoding="UTF-8......

osc_1qix3fyb
33分钟前
31
0
SVN管理系统安装及其操作

SVN管理系统安装及操作 防伪码:学习永远不晚! 前言: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上...

osc_afifi2qt
34分钟前
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部