Python-->logging....实例应用

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import  logging
logging.debug( 'debug message' )
logging.info( 'info message' )
logging.warning( 'warning message' )
logging.error( 'error message' )
logging.critical( 'critical message' )
 
输出:
E:\Python>python lianxi.py
WARNING:root:warning message
ERROR:root:error message
CRITICAL:root:critical message
 
#默认情况下Python的logging模块将日志输出,且只输出大于等于WARNING级别的日志。(日志级别等级critical>error>warning>info>debug)( 危急>错误>警告>信息>调试>没有设置),默认输出的日志格式为 日志级别:logger名称:用户输出消息。
#设置日志的输出格式
 
 
import  logging
logging.basicConfig(level = logging.DEBUG,
     format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s' ,
     datefmt = '%a,%d %b %Y %H:%M:%S' ,
                 #r'xxx'   r后接一个字符串表示其中的转义字符不解析
     filename = r 'E:\Python\test.log' ,
     filemode = 'w' )
logging.debug( 'debug message' )
logging.info( 'info message' )
logging.warning( 'warning message' )
logging.error( 'error message' )
logging.critical( 'critical message' )
 
 
文件内容为:
2016 - 05 - 15  10 : 05 : 24 , 843  lianxi.py[line: 7 ] DEBUG debug message
2016 - 05 - 15  10 : 05 : 24 , 843  lianxi.py[line: 8 ] INFO info message
2016 - 05 - 15  10 : 05 : 24 , 843  lianxi.py[line: 9 ] WARNING warning message
2016 - 05 - 15  10 : 05 : 24 , 843  lianxi.py[line: 10 ] ERROR error message
2016 - 05 - 15  10 : 05 : 24 , 843  lianxi.py[line: 11 ] CRITICAL critical message
 
#可见在logging.basicConfig()函数中可以通过具体参数来更改logging模块的默认行为,可用参数有:
#ilename:用指定的文件名创建FileHandler,这样日志就会被储存在指定的文件中。
#filemode:文件打开的方式,在指定了filename时使用这个参数,默认为‘a’。
#format:  指定handler使用日期格式。
#datefmt:指定日期格式。
#level:     设置rootlogger的日志级别。
#stream: 用指定的stream创建streamhandler。当filename和stream两个参数,则stream参数会被忽略。
 
#format参数中可能用到的格式化串:
#%(name)s Logger的名字
#%(levelno)s 数字形式的日志级别
#%(levelname)s 文本形式的日志级别
#%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
#%(filename)s 调用日志输出函数的模块的文件名
#%(module)s 调用日志输出函数的模块名
#%(funcName)s 调用日志输出函数的函数名
#%(lineno)d 调用日志输出函数的语句所在的代码行
#%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
#%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
#%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
#%(thread)d 线程ID。可能没有
#%(threadName)s 线程名。可能没有
#%(process)d 进程ID。可能没有
#%(message)s用户输出的消息
#Logging的实例应用过程。。。。。
 
import  logging             #1、申请logging模块   
 
logger  =  logging.getLogger( "My_log" )   #2、创建一个logging       logging.getLogger(name),name可不要
 
logger.setLverl(logging.INFO)      #3、设置logging的日志显示的级别
  
Filelog  =  logging.FileHandler(logfilename)   #4、创建一个日志的文件句柄 logfilename 是日志文件的路径
 
Streamlog  =  logging.StreamHandler()          #4、创建呢一个日志输出的句柄
 
Fmatter  =  logging.Formatter( "%(asctime)s - %(filename)s - %(levelname)-8s: %(message)s" ,
                                              datefmt = '%Y-%m-%d %I:%M:%S %p' )   
                                              #5、设定日志输出到文件的格式
Smatter  =  logging.Formatter( "%(asctime)s %(filename)s %(levelname)s:%(message)s" ,datefmt = '%Y-%m-%d %I:%M:%S' )     #5、设定日志输出的格式
 
Filelog.setFormatter(Fmatter)    #6、将日志文件格式加载
Streamlog.setFormattrt(Fmatter)      #6、将输出日志格式加载
 
 
Filelog.setLevel(logging.INFO)      #7、设置日志文件的级别,将决定输出的消息
Stream.setLevel(logging.INFO)   #7、设置日志输出的级别
 
logger.addHandler(Filelog)   #8、设置文件的输出方向
logger.addHandler(Stream) 
 
 
logger.info( "msg" )   #9、设置日志的输出内容,还有critical、error、warning、info、debug级别
                                 #上面设定的日志输出级别决定了在这里需要定义那种级别的日志
 
 
logger.removeHandler(Filelog)  #10、将句柄销毁
logger.removeHandler(Streamlog)






本文转自 nw01f 51CTO博客,原文链接:http://blog.51cto.com/dearch/1775695,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2天前
|
数据挖掘 vr&ar Python
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
22 10
|
2天前
|
存储 机器学习/深度学习 数据可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
42 6
|
2天前
|
机器学习/深度学习 数据可视化 算法
PYTHON用决策树分类预测糖尿病和可视化实例
PYTHON用决策树分类预测糖尿病和可视化实例
11 0
|
2天前
|
机器学习/深度学习 数据采集 供应链
从数据到决策:scikit-learn在业务分析中的应用
【4月更文挑战第17天】本文探讨了scikit-learn在业务分析中的应用,包括数据预处理、分类、回归和聚类模型的构建,以及模型评估与优化。通过使用scikit-learn,企业能有效处理数据、预测趋势、客户细分并制定决策,从而提升经营效率和市场策略。随着机器学习的发展,scikit-learn在业务分析领域的潜力将持续释放,创造更多价值。
|
2天前
|
机器学习/深度学习 算法
scikit-learn在回归问题中的应用与优化
【4月更文挑战第17天】本文探讨了scikit-learn在回归问题中的应用,介绍了线性回归、岭回归、SVR和决策树回归等算法,并提出优化策略,包括特征选择、超参数调优、交叉验证和集成学习。通过实践案例展示如何处理房价预测问题,强调了根据问题特点选择合适方法的重要性。
|
2天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
11 0
|
2天前
|
算法 Serverless 计算机视觉
SciPy的科学计算库的基础知识与应用
【4月更文挑战第17天】**SciPy**是Python的开源科学计算库,基于NumPy,包含优化、积分、线性代数、信号处理等模块。本文介绍了SciPy的基本使用,如线性代数(矩阵运算、特征值)、优化(最小化问题)、积分以及信号处理(滤波)。安装SciPy可使用`pip install scipy`。此外,还展示了图像处理和常微分方程求解的例子。SciPy是科学计算的重要工具,适用于各种数值问题。参考文献包括SciPy和NumPy官方文档。
|
2天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
3天前
|
Python
Python金融应用编程:衍生品定价和套期保值的随机过程
Python金融应用编程:衍生品定价和套期保值的随机过程
|
4天前
|
API 调度 开发者
深入理解Python异步编程:从Asyncio到实战应用
在现代软件开发中,异步编程技术已成为提升应用性能和响应速度的关键策略。本文将通过实例讲解Python中的异步编程核心库Asyncio的基本概念、关键功能以及其在Web开发中的应用。我们不仅将理论与实践结合,还将展示如何通过实际代码示例解决常见的并发问题,帮助开发者更有效地利用Python进行异步编程。