使用logging模块写的一个小型日志系统,可以运行在windows和linux系统。设计有些地方不够合理,需要改进。
源代码下载地址:http://download.csdn.net/detail/wangyuling1234567890/7219649
文档组织结构:
linux:/mnt/hgfs/vmware-share/log_system # tree -a ../log_system/ ../log_system/ |-- __init__.py |-- log |-- main.py |-- moda | |-- __init__.py | |-- __init__.pyc | |-- moda.py | `-- moda.pyc |-- modb | |-- __init__.py | |-- __init__.pyc | |-- modb.py | `-- modb.pyc |-- modc | |-- __init__.py | |-- __init__.pyc | |-- modc.py | `-- modc.pyc `-- public |-- __init__.py |-- __init__.pyc |-- config.py |-- config.pyc |-- log.py `-- log.pyc
config.py:
#!/usr/bin/python # -*- coding:gb2312 -*- import os, sys import logging def get_root(root): path = os.getcwd() while root != os.path.basename(path): path = os.path.dirname(path) return path #获取系统顶层目录路径,这里为:log_system ROOT = get_root('log_system') #日志存放路径 LOG_PATH = os.path.join(ROOT, 'log') #日志对象 LOG = None #设置日志级别:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL LOG_LEVEL = logging.DEBUG
#!/usr/bin/python # -*- coding:gb2312 -*- import os import time import logging from public import config def init_log(logger_name, log_name): cut_time = time.strftime("%Y%m%d-%H%M%S", time.localtime()) file_name = os.path.join(config.LOG_PATH, log_name + cut_time + '.log') logger = logging.getLogger(logger_name) logger.setLevel(config.LOG_LEVEL) fh = logging.FileHandler(file_name) fh.setLevel(config.LOG_LEVEL) formatter = logging.Formatter('[%(module)s] %(asctime)s - [%(message)s]') fh.setFormatter(formatter) logger.addHandler(fh) config.LOG = logger return
#!/usr/bin/python # -*- coding:gb2312 -*- import os from moda import moda from modb import modb from modc import modc from public import config from public import log def test(): config.LOG.debug('debug') config.LOG.info('info') config.LOG.warning('warning') config.LOG.error('error') config.LOG.critical('critical') moda.test() modb.test() modc.test() if __name__ == '__main__': name = os.path.basename(__file__) log.init_log(name, name) test()
#!/usr/bin/python # -*- coding:gb2312 -*- import os, sys sys.path.append('..') from public import config from public import log def test(): config.LOG.debug('debug') config.LOG.info('info') config.LOG.warning('warning') config.LOG.error('error') config.LOG.critical('critical') if __name__ == '__main__': name = os.path.basename(__file__) log.init_log(name, name) test()
linux:/mnt/hgfs/vmware-share/log_system # python main.py linux:/mnt/hgfs/vmware-share/log_system # tree -a ../log_system/ ../log_system/ |-- __init__.py |-- log | `-- main.py20140419-193539.log |-- main.py |-- moda | |-- __init__.py | |-- __init__.pyc | |-- moda.py | `-- moda.pyc |-- modb | |-- __init__.py | |-- __init__.pyc | |-- modb.py | `-- modb.pyc |-- modc | |-- __init__.py | |-- __init__.pyc | |-- modc.py | `-- modc.pyc `-- public |-- __init__.py |-- __init__.pyc |-- config.py |-- config.pyc |-- log.py `-- log.pyc 5 directories, 21 files linux:/mnt/hgfs/vmware-share/log_system # cat log/main.py20140419-193539.log [main] 2014-04-19 19:35:39,745 - [debug] [main] 2014-04-19 19:35:39,745 - [info] [main] 2014-04-19 19:35:39,745 - [warning] [main] 2014-04-19 19:35:39,745 - [error] [main] 2014-04-19 19:35:39,746 - [critical] [moda] 2014-04-19 19:35:39,746 - [debug] [moda] 2014-04-19 19:35:39,746 - [info] [moda] 2014-04-19 19:35:39,746 - [warning] [moda] 2014-04-19 19:35:39,746 - [error] [moda] 2014-04-19 19:35:39,746 - [critical] [modb] 2014-04-19 19:35:39,746 - [debug] [modb] 2014-04-19 19:35:39,746 - [info] [modb] 2014-04-19 19:35:39,746 - [warning] [modb] 2014-04-19 19:35:39,746 - [error] [modb] 2014-04-19 19:35:39,746 - [critical] [modc] 2014-04-19 19:35:39,746 - [debug] [modc] 2014-04-19 19:35:39,746 - [info] [modc] 2014-04-19 19:35:39,746 - [warning] [modc] 2014-04-19 19:35:39,746 - [error] [modc] 2014-04-19 19:35:39,746 - [critical] linux:/mnt/hgfs/vmware-share/log_system # cd moda/ linux:/mnt/hgfs/vmware-share/log_system/moda # python moda.py linux:/mnt/hgfs/vmware-share/log_system/moda # tree ../../log_system/ ../../log_system/ |-- __init__.py |-- log | |-- main.py20140419-193539.log | `-- moda.py20140419-193622.log |-- main.py |-- moda | |-- __init__.py | |-- __init__.pyc | |-- moda.py | `-- moda.pyc |-- modb | |-- __init__.py | |-- __init__.pyc | |-- modb.py | `-- modb.pyc |-- modc | |-- __init__.py | |-- __init__.pyc | |-- modc.py | `-- modc.pyc `-- public |-- __init__.py |-- __init__.pyc |-- config.py |-- config.pyc |-- log.py `-- log.pyc 5 directories, 22 files linux:/mnt/hgfs/vmware-share/log_system/moda # cat ../log/moda.py20140419-193622.log [moda] 2014-04-19 19:36:22,015 - [debug] [moda] 2014-04-19 19:36:22,015 - [info] [moda] 2014-04-19 19:36:22,015 - [warning] [moda] 2014-04-19 19:36:22,015 - [error] [moda] 2014-04-19 19:36:22,015 - [critical] linux:/mnt/hgfs/vmware-share/log_system/moda #