博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python log 日志的使用
阅读量:2221 次
发布时间:2019-05-08

本文共 2974 字,大约阅读时间需要 9 分钟。

import loggingimport logging.handlersimport osimport timeclass Logs(object):    def __init__(self):        self.logger = logging.getLogger("")        # 设置输出的等级        LEVELS = {'NOSET': logging.NOTSET,                  'DEBUG': logging.DEBUG,                  'INFO': logging.INFO,                  'WARNING': logging.WARNING,                  'ERROR': logging.ERROR,                  'CRITICAL': logging.CRITICAL}        # 创建文件目录        logs_dir = "logs"        if os.path.exists(logs_dir) and os.path.isdir(logs_dir):            pass        else:            os.mkdir(logs_dir)        # 修改log保存位置        timestamp = time.strftime("%Y-%m-%d", time.localtime())        log_filename = '%s.log' % timestamp        log_file_path = os.path.join(logs_dir, log_filename)        rotating_file_handler = logging.handlers.RotatingFileHandler(filename=log_file_path,                                                                     maxBytes=1024 * 1024 * 5,                                                                     backupCount=5)        # 设置输出格式        formatter = logging.Formatter('[%(asctime)s] '                                      '[%(levelname)s] '                                      '%(message)s',                                      '%Y-%m-%d %H:%M:%S')        # formatter = logging.Formatter('%(asctime)s - %(filename)s:[line:%(lineno)s] - %(name)s - %(message)s')        rotating_file_handler.setFormatter(formatter)        # 控制台句柄        console = logging.StreamHandler()        console.setLevel(logging.NOTSET)        console.setFormatter(formatter)        # 添加内容到日志句柄中        self.logger.addHandler(rotating_file_handler)        self.logger.addHandler(console)        self.logger.setLevel(logging.NOTSET)    def debug(self, message):        self.logger.debug(message)    def info(self, message):        self.logger.info(message)    def warning(self, message):        self.logger.warning(message, exc_info=1)    def error(self, message):        self.logger.error(message, exc_info=1)
import multiprocessingimport sysimport logging.handlers# 日志# 方便的调试,可以用logginglogger = multiprocessing.get_logger()logger.setLevel(logging.INFO)# 创建一个handler,用于写入日志文件fh = logging.handlers.RotatingFileHandler("log1.log", maxBytes=1024 * 1024, backupCount=5)fh.setLevel(logging.DEBUG)fe = logging.handlers.RotatingFileHandler("error.log", maxBytes=1024 * 1024, backupCount=5)fe.setLevel(logging.ERROR)# 定义handler的输出格式formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')fh.setFormatter(formatter)fe.setFormatter(formatter)logger.addHandler(fh)logger.addHandler(fe)def worker():    print('Doing some work')    logger.info("INFO in worker")    logger.debug("DEBUG in worker")    logger.error("ERROR in worker")    logger.warning("WARNING in worker")    logger.critical("CRITICAL in worker")    sys.stdout.flush()if __name__ == '__main__':    multiprocessing.log_to_stderr()    p = multiprocessing.Process(target=worker)    p.start()    p.join()

 

转载地址:http://epsfb.baihongyu.com/

你可能感兴趣的文章
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>