python实现的系统实用log类
2012-09-06 16:55
274 查看
每个系统都必不可少会需要一个log类,方便了解系统的运行状况和排错,python本身已经提供了一个logger了,很强大,只要稍微封装一下就可以放到自己的系统了,下面是我自己的log类
文件名:logger.py
执行结果:
终端和文件中都显示有:[2012-09-06 16:56:01,498] dxscs: [logger.py: 88]: INFO : hello,world
如果只需要显示在文件中可以将debug和nofork选项都置为false
转载请注明出处:/article/9414173.html
文件名:logger.py
"""This module takes care of the logging logger helps in creating a logging system for the application Logging is initialised by function LoggerInit. """ import logging import os import sys class logger(object): """Class provides methods to perform logging.""" m_logger = None def __init__(self, opts, logfile): """Set the default logging path.""" self.opts = opts self.myname = 'dxscs' self.logdir = '.' self.logfile = logfile self.filename = os.path.join(self.logdir, self.logfile) def loginit(self): """Calls function LoggerInit to start initialising the logging system.""" logdir = os.path.normpath(os.path.expanduser(self.logdir)) self.logfilename = os.path.normpath(os.path.expanduser(self.filename)) if not os.path.isdir(logdir): try: os.mkdir(logdir) except OSError, e: msg = ('(%s)'%e) print msg sys.exit(1) self.logger_init(self.myname) def logger_init(self, loggername): """Initialise the logging system. This includes logging to console and a file. By default, console prints messages of level WARN and above and file prints level INFO and above. In DEBUG mode (-D command line option) prints messages of level DEBUG and above to both console and file. Args: loggername: String - Name of the application printed along with the log message. """ fileformat = '[%(asctime)s] %(name)s: [%(filename)s: %(lineno)d]: %(levelname)-8s: %(message)s' logger.m_logger = logging.getLogger(loggername) logger.m_logger.setLevel(logging.INFO) self.console = logging.StreamHandler() self.console.setLevel(logging.CRITICAL) consformat = logging.Formatter(fileformat) self.console.setFormatter(consformat) self.filelog = logging.FileHandler(filename=self.logfilename, mode='w+') self.filelog.setLevel(logging.INFO) self.filelog.setFormatter(consformat) logger.m_logger.addHandler(self.filelog) logger.m_logger.addHandler(self.console) if self.opts['debug'] == True: self.console.setLevel(logging.DEBUG) self.filelog.setLevel(logging.DEBUG) logger.m_logger.setLevel(logging.DEBUG) if not self.opts['nofork']: self.console.setLevel(logging.WARN) def logstop(self): """Shutdown logging process.""" logging.shutdown() #test if __name__ == '__main__': #debug mode & not in daemon opts = {'debug':True,'nofork':True} log = logger(opts, 'dxscs_source.log') log.loginit() log.m_logger.info('hello,world')
执行结果:
终端和文件中都显示有:[2012-09-06 16:56:01,498] dxscs: [logger.py: 88]: INFO : hello,world
如果只需要显示在文件中可以将debug和nofork选项都置为false
转载请注明出处:/article/9414173.html
相关文章推荐
- python实现的系统实用log类实例
- python实现的系统实用log类实例
- Python 实现根据不同的程序运行环境存放日志目录,Python实现Linux和windows系统日志的存放
- python实现域名系统(DNS)正向查询的方法
- python实现的简单抽奖系统实例
- python实现的简单抽奖系统实例
- python学习笔记(日志系统实现)
- 用Python实现代理池(Proxy Pool)系统
- Python简单实现学生成绩管理系统
- Python(TensorFlow框架)实现手写数字识别系统
- python实现短网址系统
- 在Windows系统中,如何python脚本实现分割合并大二进制文件,方便上传
- 使用python获取CPU和内存信息的思路与实现(linux系统)
- 使用python实现一个简单的学生信息管理系统
- win7,64位系统安装Tesseract和pytesseract,用python轻松实现中文识别,超全攻略!
- 最新Python实现12306余票查询系统
- Python用户推荐系统曼哈顿算法实现
- Python实现一个学生成绩系统
- python 实现网上商城,转账,存取款等功能的信用卡系统
- 用Python3实现的Mycin专家系统简单实例