python日志
2017-07-06 17:45
232 查看
log4py.py日志重构类 import datetime import sys import traceback import codecs import types import logging import os import time #log编码全部按utf8处理 loglevels = {'stdout':['info','debug','warn','error','fatal'], 'file':['info','debug','warn','error','fatal'] } #print os.getcwd()+'/logs/logs.txt' logfile = os.getcwd()+'/logs/logs.'+time.strftime('%Y-%m-%d',time.localtime(time.time()))+'.txt' class log4py(): def __init__(self,modulename="gloabal"): self.filename = logfile #self.flag = set(loglevel['stdout']+loglevel['file']) self.loglevel = loglevels self.modulename = modulename self.fcname = None class function(): def __init__(self,fcname,parent): parent.debug('enter ',fcname) self.fcname = fcname self.parent = parent def __del__(self): self.parent.debug('exit ',self.fcname) def dbgfc(self,fcname): '''''set debug function name''' f = None if 'debug' in self.flag: f = self.function(fcname,self) return f def _gettime(self): return datetime.datetime.now().isoformat() def outstd(self,*fmt): s = self.fmtstr(*fmt) print s def outfile(self,*fmt): s = self.fmtstr(*fmt) #print 'before outfile '+s if s: #print 'outfile '+s encoding = 'utf8' out = open(logfile, 'a+')#, encoding out.write(s) out.write('\n') out.close() def fmtstr(self, *fmt): str = '' encoding = 'utf8'#缺省utf8编码 for i in fmt: if not type(i) in [types.UnicodeType, types.StringTypes, types.StringType]: s= repr(i) else: s = i if type(s) == type(u''): str += s.encode(encoding) else: str += s str += '.' #str += '/n' #print 'fmtstr:'+str return str def debug(self,*fmt): if 'debug' in self.loglevel['stdout']: self.outstd(self._gettime(),'[DEBUG]',self.modulename,*fmt) if 'debug' in self.loglevel['file']: #print 'debug file ...' self.outfile(self._gettime(),'[DEBUG]',self.modulename,*fmt) def warn(self,*fmt): if 'warn' in self.loglevel['stdout']: self.outstd(self._gettime(),'[WARN]',self.modulename,*fmt) if 'warn' in self.loglevel['file']: self.outfile(self._gettime(),'[WARN]',self.modulename,*fmt) def info(self,*fmt): if 'info' in self.loglevel['stdout']: self.outstd(self._gettime(),'[INFO]',self.modulename,*fmt) if 'info' in self.loglevel['file']: self.outfile(self._gettime(),'[INFO]',self.modulename,*fmt) def error(self,*fmt): #print '/033[0;30;41m', if 'error' in self.loglevel['stdout']: self.outstd(self._gettime(),'[ERROR]',self.modulename,*fmt) if 'error' in self.loglevel['file']: self.outfile(self._gettime(),'[ERROR]',self.modulename,*fmt) #print '/033[0m' def fatal(self,*fmt): if 'fatal' in self.loglevel['stdout']: self.outstd(self._gettime(),'[FATAL',self.modulename,*fmt) if 'fatal' in self.loglevel['file']: self.outfile(self._gettime(),'[FATAL',self.modulename,*fmt) #unit test if __name__ == '__main__': log=log4py() log.outstd('INFO','stdout','test') log.outfile('INFO','stdout','test') log.debug('debug information 调试') log.error('errorrrrrrrrrrrrrrr') log.debug('hello')
用法:
from log4py import log4py log=log4py('所在的python文件') log.debug("aaaaa")
相关文章推荐
- 一个python的网络日志系统
- Python实现博客日志自动提交程序
- Python处理日志之取得文件列表
- Python处理日志
- python 日志简单使用
- Python处理日志之取得文件列表(更新)
- Python处理日志之取得文件列表(更新)
- python 日志记录
- Python处理日志之取得文件列表(更新)
- Dive Into Python学习日志
- python文件操作(2)--分析扫描得到的日志文件把文件状态导入Excel表格
- python 日志记录 用于debug 【copy 一位老兄的】
- python之强大的日志模块【转】
- [python]获取svn版本库里当天日志
- 给Asus WL500G Deluxe无线路由器日志文件添加IP地址地理位置信息的Python小程序
- python整理十三——迷你日志
- python文件操作(1)--扫描某目录下的文件列表信息存入日志文件
- Python导出QQ空间的日志
- Python模块学习 ---- logging 日志记录(一)
- python 学习日志(1)