码迷,mamicode.com
首页 > 编程语言 > 详细

Python---进阶---logging---logger

时间:2019-06-21 15:38:56      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:打印   turn   自己   file   error   Matter   不同的   bsp   level   

一、####用logging的四大组件来实现日志的功能

- 打印出函数执行的时间,日志的等级,日志的消息

- 用装饰器

- 不同的日志,要记录不同等级的日志消息

----------------------------------------------

import logging
logger = logging.getLogger("mylogger")
logger.setLevel(logging.DEBUG)
# handler
# TimeRotationFileHandler 是用来按照日期去划分日志
# RotationFileHandler 是按照日志文件的大小划分日志
debug_handler = logging.FileHandler("1024debug.log")
debug_handler.setLevel(logging.DEBUG)
debug_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))

error_handler = logging.FileHandler("1024error.log")
error_handler.setLevel(logging.ERROR)
error_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))

logger.addHandler(debug_handler)
logger.addHandler(error_handler)
def log(func):
    def wrapper(*arg, **kw):
        logger.debug("this is a debugger info")
        logger.error("this is a error info")
        return func(*arg, **kw)
    return wrapper
def loghigher(text):
    def decorator(func):
        def wrapper(*arg, **kw):
            logger.debug(text)
            logger.error(text)
            return func(*arg, **kw)
        return wrapper
    return decorator
   
# 按照函数的不同,要在日志中打印出不同的东西
@log
def test():
    print("test done")
 
@log("this is test1 done")
def test1():
    print("test1 done")
   
@loghigher("this is main done")
def main():
    print("main done")
   
test1()
main()

----------------------------------------------

#### 一般情况我们在实际的工作当中,我们经常把logging封装成一个装饰器,按照我自己的习惯,我是习惯新建一个loggerTools的文件,
### 在需要保存日志的地方,把loggerTools给引进进来。

Python---进阶---logging---logger

标签:打印   turn   自己   file   error   Matter   不同的   bsp   level   

原文地址:https://www.cnblogs.com/niaocaizhou/p/11064809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!