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()
  • 相关阅读:
    Oracle 推出 ODAC for Entity Framework 和 LINQ to Entities Beta版
    Entity Framework Feature CTP 5系列文章
    MonoDroid相关资源
    MSDN杂志上的Windows Phone相关文章
    微软学Android Market推出 Web Windows Phone Marketplace
    使用 Visual Studio Agent 2010 进行负载压力测试的安装指南
    MonoMac 1.0正式发布
    Shawn Wildermuth的《Architecting WP7 》系列文章
    使用.NET Mobile API即51Degrees.mobi检测UserAgent
    MongoDB 客户端 MongoVue
  • 原文地址:https://www.cnblogs.com/liruixin/p/6747932.html
Copyright © 2011-2022 走看看