python的logging [转自python mail list]

我们知道在java或者.net中大部分都是使用apache的log4…,
python里面本身就自带了logging模块。同样在django中也可以用:

1.Setting.py中设置

LOG_FILE = "log.log"

2.创建utils/log.py:

import logging 
from django.conf import settings 
 
 
def getlog(): 
    logger = logging.getLogger() 
    hdlr = logging.FileHandler(settings.LOG_FILE) 
    formatter = logging.Formatter('%(asctime)s %(levelname)s % (message)s') 
    hdlr.setFormatter(formatter) 
    logger.addHandler(hdlr) 
    logger.setLevel(logging.NOTSET) 
 
    return logger

3.使用:

from utils import log 
log.getlog().debug("dddddd")

你就可以看到你的django project的根目录下有一文件log.log
2007-02-13 07:02:07,780 DEBUG dddddd

更多参考:
http://www.onlamp.com/pub/a/python/2005/06/02/logging.html
————————————————————————————–

On 2/13/07, map…@gmail.com wrote:
> 我们知道在java或者.net中大部分都是使用apache的log4…,
> python里面本身就自带了logging模块。同样在django中也可以用:

嗯嗯嗯!比俺使用的聪明,俺是生硬的直接使用
每个需要的py 中:

import logging 
logging.basicConfig(level=logging.DEBUG, 
                    format='[%(asctime)s]%(levelname)-8s"%(message)s"', 
                    datefmt='%Y-%m-%d %a %H:%M:%S', 
                    filename='bo_update.log', 
                    filemode='a+') 
... 
logging.debug("Line: %s updated..." % (line_ref))

————————————————————————————–
实际应用时建议使用

formatter = logging.Formatter('[%(asctime)s]%(levelname)-8s"%(message)s"','%Y-%m-%d 
%a %H:%M:%S')

这样可以获得
[2007-02-13 Tue 15:50:28]DEBUG “{‘cchoice’: {‘M’: ”, ‘V’: ”}, ‘uinfo’: {}}”
[2007-02-13 Tue 15:50:28]INFO “{‘cchoice’: {‘M’: ”, ‘V’: ”}, ‘uinfo’: {}}”

这样整齐的日志头…

发表评论

电子邮件地址不会被公开。 必填项已用*标注