python log

#!/usr/bin/python
"""Publog.py
CLASSES Logger
if you want to use this logger .you must set two value
    1:set the output level
    2:set the outs--output files's path /default is console
"""
__version__= '$Version 1.0$'
import sys
import os
import time
#log level define begin
DEBUG=0
INFO=1
WARN=2
ERROR=3
FATAL=4
NOLOG=5
#log level define end
outs=['con']
level=NOLOG
#min is 10k
maxsize=10000
class Logger:
    def __init__(self,head='common log'):
        self.head=head
        self.output=outs
        if maxsize <10000:
            self.maxsize=10000
        else:
            self.maxsize=maxsize
        if level >5 | level<0:
            self.level=NOLOG
        else:
            self.level=level
    #debug
    def debug(self,str=''):
        if DEBUG>=self.level:
            self.writelog(str)
        else:
            return
    #info
    def info(self,str=''):
        if INFO>=self.level:
            self.writelog(str)
        else:
            return
    #warn
    def warn(self,str=''):
        if WARN>=self.level:
            self.writelog(str)
        else:
            return
    #error
    def error(self,str=''):
        if ERROR>=self.level:
            self.writelog(str)
        else:
            return
    #fatal
    def fatal(self,str=''):
        if FATAL>=self.level:
            self.writelog(str)
        else:
            return
    #output
    def writelog(self,str=''):
        prtstr=self.head+" : "+str+"  ("+time.ctime() +")"
        for path in self.output:
            if path=='con':
                print prtstr
            else:
                try:
                    if <script></script> os.path.exists(path):
                        if os.stat(path)[6] >self.maxsize:
                            newname=self.getname(path)
                            if os.path.exists(newname):
                                os.remove(newname)
                            os.rename(path,newname)
                    logfile=open(path,"a+")       <wbr>                    
                    try:
                        logfile.write(prtstr+os.linesep)
                        logfile.close()
                    finally:
                        if not logfile.closed:
                            logfile.close()
                except IOError:
                    pass
    def getname(self,path):
        dirname,filename=os.path.split(path)       
        # filename=str(time.localtime()[0:3])+filename
        year,month,date,hour,min=time.localtime()[0:5]
        filename=str(year)+"-"+str<wbr>(month)+"-"+str(date)+"-"+str<wbr>(hour)+"-"+str(min)+"-"<wbr>+filename
        newname=os.path.join(dirname,filename)
        return newname
def test():
    global level,outs
    level=INFO
    outs=['con','D:/edi/log.txt']
    maxsize=20000
    logger=Logger("==test head")
    logger.debug("debug")
    logger.info("info")
    logger.error("error")
if __name__== '__main__':
    test()
        </wbr></wbr></wbr></wbr>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值