最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
简单封装python的logging的例子
时间:2015-10-03 编辑:简简单单 来源:一聚教程网
用python的logging的时候,每次都要写很多话才能记一条log,于是做了个小模块来让记log变得更便捷。
代码如下
log.py
import logging, logging.handlers
import config
import inspect
FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
LOG_LEVEL = logging.DEBUG
logger = {}
handler = logging.handlers.RotatingFileHandler(
config.PATH_LOG_FILE,
maxBytes = 1048576 * 2, # 2MB
backupCount = 5,
)
handler.setFormatter(logging.Formatter(FORMAT))
__all__ = ['Log', 'LogI', 'LogE', 'LogD', 'LogC', 'LogW']
def Log(name):
if inspect.isclass(type(name)): #instance
name = name.__class__.__name__
elif inspect.isclass(type(name)): #class
name = name.__name__
else:
name = name or "no_name"
if name in logger:
return logger[name]
else:
l = logging.getLogger(name)
l.setLevel(LOG_LEVEL)
l.addHandler(handler)
logger[name] = l
return l
def LogI(name, log):
return Log(name).info(log)
def LogE(name, log):
return Log(name).error(log)
def LogD(name, log):
return Log(name).debug(log)
def LogC(name, log):
return Log(name).critical(log)
def LogW(name, log):
return Log(name).warning(log)
试试看:
from log import *
class C(object):
def logC(self, log):
LogC(self, log)
instance = C()
LogI(C(), 'passing instance')
LogW(C,'passing class type')
instance.logC("passing self")
来看看我们的log输出:
2014-12-06 15:10:56,817 - C - INFO - passing instance
2014-12-06 15:10:56,818 - type - WARNING - passing class type
2014-12-06 15:10:56,818 - C - CRITICAL - passing self
-
上一个: PHP Closure类的使用方法及介绍
相关文章
- 最简单的摄影技巧分享 07-05
- ps怎么简单的制作云雾效果 07-04
- 迅捷流程图如何设计一个简单组员表格 06-28
- JAVA简单工厂模式(从现实生活角度理解代码原理) 06-27
- Word简单使用的小技巧 06-19
- PS最简单 最基础知识介绍 06-16