python- 日志学习
# @File : learn_logging.py #-*- coding:utf-8 -*- """
日志:log 记录代码执行的过程
一旦记录下来,就可以根据日志去定位排查问题 日志的级别(由低到高):debug < info < waring < error <critical
可自定义日志输出的级别,可灵活控制 logging库 是python自带的 """
import logging
# # root = RootLogger(WARNING) 是系统自定义的收集日志的收集器;
# # 默认收集并输入warning级别及其以上的日志信息
#
# # handles 是输出渠道,默认输出渠道是console控制台
# logging.debug('这是一个debug信息')
# logging.info('这是一个info信息')
# logging.warning('这是一个waring信息')
# logging.error('这是一个error信息')
# logging.critical('这是一个crtical信息') # 创建一个日志收集器并命名
my_logger=logging.getLogger('test_logger')
my_logger.setLevel('DEBUG')# 设置收集器的级别 # 设置输出格式
formatter = logging.Formatter('%(asctime)s - %(filename)s - %(name)s - %(levelname)s - 日志信息: %(message)s') # 指定输出渠道,输出到控制台
ch=logging.StreamHandler()#输入到控制台
ch.setLevel('DEBUG')# 设置输出渠道的级别;
# 如果收集器中的级别与输出渠道级别不同,取两者的交集
ch.setFormatter(formatter)#日志输出时,按指定的输出格式输出 #输出到本地文件
fh=logging.FileHandler('log_file.txt',encoding='utf-8')#输出到本地log_file文档中;日志中有中文,需要设置编码
fh.setLevel('ERROR')#输出级别为error
fh.setFormatter(formatter)#日志输出时,按指定的输出格式输出 #对接:收集器与输出渠道
my_logger.addHandler(ch)
my_logger.addHandler(fh) #日志信息
my_logger.debug('这是一个debug信息')
my_logger.info('这是一个info信息')
my_logger.warning('这是一个waring信息')
my_logger.error('这是一个error信息')
my_logger.critical('这是一个crtical信息')
编写一个属于自己的可控制的日志类
# @File : learn_logging.py #-*- coding:utf-8 -*- import logging class MyLog: def my_log(self,level,msg):
# 创建一个日志收集器并命名
my_logger=logging.getLogger('test_logger')
my_logger.setLevel('DEBUG')# 设置收集器的级别 # 设置输出格式
formatter = logging.Formatter('%(asctime)s - %(filename)s - %(name)s - %(levelname)s - 日志信息: %(message)s') # 指定输出渠道,输出到控制台
ch=logging.StreamHandler()#输入到控制台
ch.setLevel('DEBUG')# 设置输出渠道的级别;
# 如果收集器中的级别与输出渠道级别不同,取两者的交集
ch.setFormatter(formatter)#日志输出时,按指定的输出格式输出 #输出到本地文件
fh=logging.FileHandler('log_file.txt',encoding='utf-8')#输出到本地log_file文档中;日志中有中文,需要设置编码
fh.setLevel('DEBUG')#输出级别为debug
fh.setFormatter(formatter)#日志输出时,按指定的输出格式输出 #对接:收集器与输出渠道
my_logger.addHandler(ch)
my_logger.addHandler(fh) if level == 'DEBUG':
my_logger.debug(msg)
elif level == 'INFO':
my_logger.info(msg)
elif level == 'WARNING':
my_logger.warning(msg)
elif level == 'ERROR':
my_logger.error(msg)
elif level == 'CRITICAL':
my_logger.critical(msg) def debug1(self,msg):
self.my_log('DEBUG',msg)
def info1(self,msg):
self.my_log('INFO',msg)
def warning(self,msg):
self.my_log('WARNING',msg)
def error(self,msg):
self.my_log('ERROR',msg)
def crtical(self,msg):
self.my_log('CRTICAL',msg) if __name__ == '__main__':
my_logger=MyLog()
my_logger.debug1('haha')
my_logger.info1('heng')
python- 日志学习的更多相关文章
- python日志模块logging学习
介绍 Python本身带有logging模块,其默认支持直接输出到控制台(屏幕),或者通过配置输出到文件中.同时支持TCP.HTTP.GET/POST.SMTP.Socket等协议,将日志信息发送到网 ...
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
- 浅析python日志重复输出问题
浅析python日志重复输出问题 问题起源: 在学习了python的函数式编程后,又接触到了logging这样一个强大的日志模块.为了减少重复代码,应该不少同学和我一样便迫不及待的写了一个自己的日 ...
- Python 标准库一览(Python进阶学习)
转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...
- 【目录】Python模块学习系列
目录:Python模块学习笔记 1.Python模块学习 - Paramiko - 主机管理 2.Python模块学习 - Fileinput - 读取文件 3.Python模块学习 - Confi ...
- Node.js / Python 日志
一.Node.js 日志 1.原生 Node.js 原生方法其实很简单,就四个: // 输出到 stdout console.log() console.info() = console.log() ...
- Python新手学习raise用法
当程序出现错误时,系统会自动引发异常.除此之外,Python也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 很多时候,系统是否要引发异常,可能需要根据应用的业务需求来决定,如果程序 ...
- python日志按天分割,保存近一个月日志,日志自动清理
python日志按天分割,保存近一个月日志 import os import logging import re from logging.handlers import TimedRotatingF ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 60分钟Python快速学习(给发哥一个交代)
60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空 ...
随机推荐
- css加载字体跨域问题
刚才碰到一个css加载字体跨域问题,记录一下.站点的动态请求与静态文件请求是不同的域名的.站点的域名为 www.domain.com,而静态文件的域名为 st.domain.com.问题:页面中加载c ...
- plsql远程访问数据库 解决ora-12541:TNS:无监听程序
今天在windows server 2012上安装了一个oracle 11g的数据库,但是安装 完成以后发现在我的机器上访问数据库出现错误,ora-12541:TNS:无监听程序. 后来查询了很多资料 ...
- NET设计模式 第二部分 结构性模式(8):桥接模式(Bridge Pattern)
桥接模式(Bridge Pattern) ——.NET设计模式系列之九 Terrylee,2006年2月 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维 ...
- golang channel几点总结
golang提倡使用通讯来共享数据,而不是通过共享数据来通讯.channel就是golang这种方式的体现. Channel 在golang中有两种channel:带缓存的和不带缓存. 带缓存的cha ...
- 电信版华为MATE7 EMUI4.0回退3.1和3.0教程与中转包
mate7升级6.0后遇到很多问题,想回退版本,找了很多教程,现在总结一下用中转包回退.EMUI4.0回退3.1,先下载B500中转包,将dload复制到2G以上内存卡根目录,不要三键强刷,会卡在开机 ...
- 关于SD-SDI,HD-SDI,3G-SDI行号的问题
关于SD-SDI,HD-SDI,3G-SDI行号的问题 1.资料来源 2.行号的插入信号 SD-SDI mode的信号不需要行号 HD-SDI,3G-SDI mode的信号必须插入行号 3.edh的插 ...
- MySQL的瑞士军刀
这里主要讲mysql运维中的一些主要工具,这些工具可能大家都用过,特别是系统管理员或者做linux服务器维护的同学可能都知道这些小工具,这里讲得会比较多一些,除了系统监控的小工具,还包括一些mysql ...
- gtid error set test
1.从库报主键重复(Errno: 1062)#create test data 1062create table t1 (id tinyint not null primary key,ename v ...
- MySQL测试报告
硬件配置: 3台服务器:192.168.23.168, 192.168.23.169, 192.168.23.170 硬盘:230G 内存:16G Linux内核:Linux geoserver. ...
- Debian 7.0(Wheezy) 安装配置笔记
1. 下载光盘镜像 ftp://debian.ustc.edu.cn/debian-cd/7.1.0/amd64/iso-dvd/ [2012.3.25] 1.1 去官网 http://cdimag ...