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

Posted niaocaizhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python---进阶---logging---logger相关的知识,希望对你有一定的参考价值。

一、####用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的主要内容,如果未能解决你的问题,请参考以下文章

python进阶:面向对象进阶

Python语法进阶

PYTHON进阶

Python进阶---面向对象第三弹(进阶篇)

Python学习之路

Python学习之路