zoukankan      html  css  js  c++  java
  • python logging 模块记录日志

    #日志记录到多文件示例

     1 import logging
     2 
     3 def error_log(message):
     4     file_1_1 = logging.FileHandler('error.log', 'a+', encoding='utf-8')
     5     fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
     6     file_1_1.setFormatter(fmt)
     7     # 创建日志对象
     8     logger1 = logging.Logger('error', level=logging.ERROR)
     9     # 日志对象和文件对象创建关系
    10     logger1.addHandler(file_1_1)
    11 
    12     logger1.log(logging.FATAL,message)
    13 
    14 def run_log(message):
    15     file_1_1 = logging.FileHandler('run.log', 'a+', encoding='utf-8')
    16     fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
    17     file_1_1.setFormatter(fmt)
    18     # 创建日志对象
    19     logger1 = logging.Logger('run', level=logging.ERROR)
    20     # 日志对象和文件对象创建关系
    21     logger1.addHandler(file_1_1)
    22 
    23     logger1.log(logging.FATAL,message)


     #日志记录到单个文件示例

    import  logging
    logging.basicConfig(
    filename="11.log",
    format="%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(message)s",
    datefmt='%Y-%m-%d %H:%M:%S %p',
    level=logging.INFO
    )
    logging.log(logging.ERROR,"MESSAGE....")



    #单例模式
     1 import  logging
     2 
     3 class LoggerHelper(object):
     4     _i = None
     5 
     6     @classmethod
     7     def instance(cls):
     8         if cls._i:
     9             return cls._i
    10         else:
    11             cls._i = LoggerHelper() #LoggerHelper()
    12             return cls._i # obj
    13 
    14     def __init__(self):
    15         error_log = logging.FileHandler('error.log', 'a+', encoding='utf-8')
    16         fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
    17         error_log.setFormatter(fmt)
    18         # 创建日志对象
    19         error_logger = logging.Logger('error', level=logging.ERROR)
    20         # 日志对象和文件对象创建关系
    21         error_logger.addHandler(error_log)
    22         self.error_logger = error_logger
    23 
    24         run_log = logging.FileHandler('run.log', 'a+', encoding='utf-8')
    25         fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
    26         run_log.setFormatter(fmt)
    27         # 创建日志对象
    28         run_logger = logging.Logger('run', level=logging.ERROR)
    29         # 日志对象和文件对象创建关系
    30         run_logger.addHandler(run_log)
    31         self.run_logger = run_logger
    32 
    33 
    34 if __name__ == '__main__':
    35     #调用
    36     # 单例模式,用户获得第一次创建的对象
    37     obj1 = LoggerHelper.instance()
    38     obj1.run_logger.log(logging.FATAL,'asdfasdfasdfasdf')
    39 
    40     obj2 = LoggerHelper.instance()
    41     obj2.run_logger.log(logging.FATAL,'asdfasdfasdfasdf')
    42 
    43     obj3 = LoggerHelper.instance()
    44     obj3.run_logger.log(logging.FATAL,'asdfasdfasdfasdf')

     #只创建一个实例的设计模式

    cls为类名

     1 class Foo(object):
     2     _i = None
     3     def __init__(self):
     4         self.n = 123
     5     def __new__(cls, *args, **kwargs):
     6         if cls._i:
     7             return cls._i
     8         else:
     9             o = object.__new__(cls,*args,**kwargs)
    10             cls._i = o
    11             return cls._i
    12         
    13 obj1 = Foo()
    14 obj2 = Foo()
  • 相关阅读:
    XML操作类
    输入框样式总结
    根据计算机MAC地址限定每台机子只能领取一次账号
    ico图标的应用
    C#实现关机功能
    在sql中实现数组
    JSON
    MvcHtml.ActionLink()用法
    Brettle.Web.NeatUpload.dll 大文件上传
    asp.net 创建Access数据库
  • 原文地址:https://www.cnblogs.com/liruixin/p/6747932.html
Copyright © 2011-2022 走看看