最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python实现的系统实用log类实例

来源:动视网 责编:小采 时间:2020-11-27 14:34:14
文档

python实现的系统实用log类实例

python实现的系统实用log类实例:本文实例讲述了python实现的系统实用log类。分享给大家供大家参考。具体如下: 每个系统都必不可少会需要一个log类,方便了解系统的运行状况和排错,python本身已经提供了一个logger了,很强大,只要稍微封装一下就可以放到自己的系统了,下面是我自己的lo
推荐度:
导读python实现的系统实用log类实例:本文实例讲述了python实现的系统实用log类。分享给大家供大家参考。具体如下: 每个系统都必不可少会需要一个log类,方便了解系统的运行状况和排错,python本身已经提供了一个logger了,很强大,只要稍微封装一下就可以放到自己的系统了,下面是我自己的lo


本文实例讲述了python实现的系统实用log类。分享给大家供大家参考。具体如下:

每个系统都必不可少会需要一个log类,方便了解系统的运行状况和排错,python本身已经提供了一个logger了,很强大,只要稍微封装一下就可以放到自己的系统了,下面是我自己的log类

文件名: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

希望本文所述对大家的Python程序设计有所帮助。

文档

python实现的系统实用log类实例

python实现的系统实用log类实例:本文实例讲述了python实现的系统实用log类。分享给大家供大家参考。具体如下: 每个系统都必不可少会需要一个log类,方便了解系统的运行状况和排错,python本身已经提供了一个logger了,很强大,只要稍微封装一下就可以放到自己的系统了,下面是我自己的lo
推荐度:
标签: 系统 实现 实例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top