python-整理-logging日志
python的日志功能模块是logging 功能和使用方式非常类似于log4
如何使用logging:
# 导入日志模块
import logging
# 使用配置文件设置日志时,需要导入这个模块
import logging.config
class MyLog:
'''日志类,用于将日志信息写入到.txt文件中''' # 载入配置信息,从Logging.cfg
__loadcfg=logging.config.fileConfig("Loggers/Logging.ini") # 获取一个logger对象,通过这个名字参数可以保证在当前程序进程中其它地方获取日志对象时,是同一个日志对象.
__dblog=logging.getLogger('dblog') @staticmethod
def AddLog(msg,logrefname=None):
'''// 添加日志
// 1.msg:日志内容
// 2.logrefname:通过这个名字获取日志对象,默认是dblog.其它名字要到配置文件里查看
'''
if logrefname is not None:
MyLog.__dblog=logging.getLogger(logrefname) MyLog.__dblog.debug(msg)
使用时调用 MyLog.AddLog(logmsg)就加入日志了.
以下是配置文件Logging.ini
# 这是python的logging日志模块的配置文件
# 遇到的问题有几个:使用logging.config.fileConfig("Logging.ini")载入后,启动程序
# .报错.KeyError Formatters 在网上查了很久,说是日志路径的问题,结果就是路径问题
# .报错gbk... 用的是VS2013,新建的python文件不是utf-8编码,需要改一下编码.可是对于这个Logging.ini,居然要改回gb2312().不改的话就报这错误. # 指示日志引用名,通过这个名字,能找到同一个日志对象
[loggers]
keys=root,dblog # 指示日志的输出,可以输出到控制台,文件,发Email,输出到SOCKET等等
[handlers]
keys=handroot,handdb # 指示日志输出格式
[formatters]
keys=formroot,formdb # root日志对象,这个相当于父类,必需要有
[logger_root]
level=NOTSET
handlers=handroot # 这是自己建立的日志对象,propagate=0表示不继承父类,=1表示继承.(研究后得出结论:如果选继承,日志也会输出到父类的handler上)
[logger_dblog]
level=DEBUG
handlers=handdb
propagate=
qualname=dblog [handler_handroot]
class=StreamHandler
level=NOTSET
formatter=formroot
args=(sys.stdout,) # 这使用了回转日志(class指示使用的是哪个hander,logging有很多handler),就是当日志达到一定大小后,会另建一个新文件
[handler_handdb]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=formdb
args=('dblog.txt', 'a',) [formatter_formroot]
format=F1 %(asctime)s %(levelname)s %(message)s
datefmt=
class=logging.Formatter # 关于formatter类的详细情况,请查看本机文档在d:/python学习中有链接
[formatter_formdb]
format=%(asctime)s 类型 : %(name)s 内容 : %(message)s
datefmt=%Y-%m-%d %H:%M:%S
class=logging.Formatter
也可以在代码中配置日志,使用这个方法载入配置
logging.basicConfig()
一个非常详细的日志使用请看这里
http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html
python-整理-logging日志的更多相关文章
- Python 中 logging 日志模块在多进程环境下的使用
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...
- 【python】logging日志模块写入中文编码错误解决办法
一.问题: 使用python的logging模块记录日志,有时会遇到中文编码问题错误. 二.解决办法: 在logging.FileHandler(path) 中添加指定编码方式 encoding='u ...
- python的logging日志模块(二)
晚上比较懒,直接搬砖了. 1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('Thi ...
- python的logging日志模块(一)
最近修改了项目里的logging相关功能,用到了Python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 ...
- python(6)-logging 日志模块
logging的日志分为5个级别分别为debug(), info(), warning(), error(), critical() 先来看一下简单的代码: logging.basicConfig(f ...
- python的logging日志模块
1. 简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info mess ...
- Python之logging日志模块
logging 用于便捷既然日志切线程安全的模块 vim log_test.py import logging logging.basicConfig(filename='log.log', form ...
- python中logging日志基本用法,和进程安全问题
低配版 import logging logging.debug('debug message') # 调试模式 logging.info('info message') # 正常运转模式 loggi ...
- python - django (logging 日志配置和简单使用)
1. settings 配置 # 配置日志 LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 's ...
- Python:Logging日志处理
程序中,需要添加日志来记录大量信息. import logging # 第一步:创建logger self.logger = logging.getLogger() self.logger.setLe ...
随机推荐
- Turbo Sort Add problem to Todo list Problem code: TSORT
def heap_sort(ary): n = len(ary) first = int(n / 2 - 1) for start in range(first, -1, -1): # 3~0 rev ...
- [HDU] 1394 Minimum Inversion Number [线段树求逆序数]
Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- bzoj1004 Cards
Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红 ...
- 使用ownCloud搭建你的个人云服务(ubuntu 14.04 server)(ownCloud对文件不切片,Seafile对文件切片),owncloud没有存储的功能 只能同步 本地删除了服务器也会删除
ownCloud是什么 ownCloud是一个自由且开源的个人云存储解决方案(类似百度网盘或者Dropbox),包括两个部分:服务器和客户端. ownCloud在客户端可通过网页界面,或者安装专用的客 ...
- linux type 命令和Linux的五个查找命令
type命令用来显示指定命令的类型.一个命令的类型可以是如下之一 alias 别名 keyword 关键字,Shell保留字 function 函数,Shell函数 builtin 内建命令,Shel ...
- QT5.1.0,QT4.8.0以及VC2010、VC2012的测试对比
QT5.1.0,QT4.8.0以及VC2010.VC2012的交叉测试对比. 测试1: 用VC2012静态编译了QT5.1.0. 编译速度很慢,生成完成后,用VC2012+QT5.1.0进行程序生成, ...
- 多个文件目录下Makefile的写法
1.前言 目前从事于linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile.关于Makefile的详细内容可以参考网上流传非常广泛的<跟我一起写Ma ...
- unix c 04
系统调用(System Call) 文件的操作函数(Unix/Liunx系统内部提供的函数) time 可以查看程序的运行时间,包括用户层时间和系统层的时间. 系统调用其实就是一系列的 ...
- POJ-2533最长上升子序列(DP+二分)(优化版)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 41944 Acc ...
- CentOS6.4安装mplayer
1.准备软件 mplayer官网:http://www.mplayerhq.hu/design7/news.html RPM Fusion网址:http://rpmfusion.org/ EPEL网址 ...