人生苦短_我用Python_logging日志操作_011
话不多说,开搞,基础是先使用自带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的更多相关文章
- mysql 查看 删除 日志操作总结(包括单独和主从mysql)
我们可以在mysql的安装目录下看到mysql的二进制日志文件,如mysql-bin.000***等,很多人都不及时的处理,导致整个硬盘被塞满也是有可能的.这些是数据库的操作日志.它记录了我们平时使用 ...
- SQL Server 最小化日志操作解析,应用
Sql Server 中数据库在BULK_LOGGED/SIMPLE模式下的一些操作会采用最小化日志的记录方式,以减小tran log落盘日志量从而提高整体性能. 这里我简单介绍下哪些操作在什么样的情 ...
- 使用Log4j进行日志操作
使用Log4j进行日志操作 一.Log4j简介 (1)概述 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接字服 ...
- SQL Server 最小化日志操作解析,应用[手稿]
Sql Server 中数据库在BULK_LOGGED/SIMPLE模式下的一些操作会采用最小化日志的记录方式,以减小tran log落盘日志量从而提高整体性能. 这里我简单介绍下哪些操作在什么样的情 ...
- xBIM 日志操作
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...
- python中的日志操作和发送邮件
1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...
- 从零开始的Python学习Episode 14——日志操作
日志操作 一.logging模块 %(message)s 日志信息 %(levelno)s 日志级别 datefmt 设置时间格式 filename 设置日志保存的路径 level 设置日志记录的级别 ...
- Java 使用Log4J进行日志操作
使用Log4J进行日志操作 Log4J简介 Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台.文件.CUI组件.NT ...
- Python之日志操作(logging)
import logging 1.自定义日志级别,日志格式,输出位置 logging.basicConfig( level=logging.DEBUG, format='%(asctime)s | ...
随机推荐
- 关于Calendar和Reminder(日历和提醒)编程指南
Event Kit框架使你能访问用户的Calendar.app和Reminders.app信息.虽然这是两个不同的app,但是他们使用相同的框架处理数据.类似地,存储这些数据的数据库,被称为日历数据库 ...
- php面试专题---21、MVC框架基本工作原理考察点
php面试专题---21.MVC框架基本工作原理考察点 一.总结 一句话总结: 会的东西快速过,不要浪费时间,生命有限,都是一些很简单的东西. 1.mvc框架单一入口的 优势 是什么? 可以进行统一的 ...
- “The creator of this fault did not specify a Reason” Exception
“The creator of this fault did not specify a Reason” Exception if(!DidItPass) { InvalidRoutingCodeFa ...
- PHP7.2中AES加密解密方法mcrypt_module_open()替换方案 Function mcrypt_get_block_size() is deprecated
直接粘代码,该类是基于微信公众号消息加密解密所提供的PHP DEMO改造而来,目前使用于彬彬大学APP接口token校验中. php的mcrypt 扩展已经过时了大约10年,并且用起来很复杂.因此它被 ...
- PHP的重载-使用魔术方法实现
摘录PHP官网对PHP重载的解释: PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法.我们是通过魔术方法(magic method ...
- leetcode 215. 数组中的第K个最大元素(python)
在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5示 ...
- Unity3D移动端电量与wifi信号的获取
移动端游戏中无法看到电量与wifi信号对于玩家来说是很困扰的事. 关于这个问题安卓与iOS有不同的方法 电量 安卓 安卓获取电量有两种方法,一种是读取安卓手机里的一个文件,一种是利用安卓与Unity互 ...
- Android深度探索-卷1第八章心得体会
本章介绍了如何将Linux驱动分成多个实现文件和Linux常用的代码重用方式还有些强行卸载Linux驱动的方法 开发一个Linux驱动,可能会在init.exit等函数中发生错误导致Linux驱动安装 ...
- deepin下安装配置git
https://blog.csdn.net/menglinjie/article/details/77145537 1.安装gitsudo apt-get install git12.配置用户名和邮箱 ...
- Java语言的特点与工作原理
Java语言的特点 1.简单性 Java语言与我们常听到的C++语言很像,但是没有C++那么繁琐.因为Java就是在C++之上设计出来的,设计者把C++的一些特性去掉了,这些特性在实际开发中,程序员也 ...