DANCE WITH JAVA

          開發出高質量的系統

          常用鏈接

          統計

          積分與排名

          好友之家

          最新評論

          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 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+")???????????????????????????
          ??????????????????? 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(month)+"-"+str(date)+"-"+str(hour)+"-"+str(min)+"-"+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()
          ???????

          posted on 2006-09-20 22:19 dreamstone 閱讀(283) 評論(0)  編輯  收藏 所屬分類: 片段

          主站蜘蛛池模板: 时尚| 浮梁县| 湄潭县| 平罗县| 炎陵县| 称多县| 七台河市| 九龙县| 南丹县| 广南县| 施甸县| 乌鲁木齐县| 大余县| 林甸县| 汾阳市| 尼勒克县| 祥云县| 上林县| 建平县| 久治县| 邓州市| 大厂| 洛隆县| 伊春市| 开远市| 托克托县| 阳春市| 青冈县| 紫金县| 富源县| 保定市| 得荣县| 阿合奇县| 竹溪县| 龙里县| 延长县| 玛纳斯县| 额敏县| 衡水市| 兴安盟| 普兰店市|